2009-06-10 6 views
1

NSURLConnectionを使用してiPhoneのWebから大きなファイルをダウンロードします。私は、 "didReceiveData"メソッドを使用して、Documentsフォルダ内のファイルにデータを追加します。それはうまく動作します。iPhoneで中断し続ける

ダウンロードが中断された場合(ユーザーが「ホーム」ボタンを押したなど)、次回に自分のアプリケーションを起動し、最初からダウンロードすることはできません。

誰でも手伝ってもらえますか?

答えて

7

ASIHTTPRequestは、ダウンロードを再開するためのサポートを使用して簡単に持っている:

また

http://allseeing-i.com/ASIHTTPRequest/How-to-use#resume

、既存データのサイズを見て、既にダウンロードし、「レンジ」を設定しているどのくらいのデータを見つけますあなたのNSMutableURLRequestのヘッダー:

[request addValue:@"bytes=x-" forHTTPHeaderField:@"Range"]; 

..where xは、​​あなたが既に持っているデータのバイト単位のサイズです。これは、バイトxから始まるデータをダウンロードします。このデータを受け取ったときにファイルに追加することができます。

ダウンロードしようとしているリソースの部分ダウンロードをサポートしている必要があります。その場合、Accept-Rangesヘッダーが送信されます。一般に、動的に生成されたコンテンツ(たとえば、サーバー上のスクリプトによって生成されたページ)のダウンロードを再開することはできません。

+0

私が探していた答えのようです。大変ありがとう、pokeb。 –

-1

私が考えることができる唯一の方法は、ダウンロードしているファイルを小さなファイルに分割することです。あなたは、ファイルの各部分が終了したときを決定する

- (void)connectionDidFinishLoading:(NSURLConnection *)connection 

メソッドを使用して、ダウンロードされなかった最後の部分でのダウンロードを再開することができます。

-1

特定のオフセットからリソースの転送を開始する要求をどのように作成するかを確認するには、HTTP標準を参照してください。私はコードを手で見つけることはできません、申し訳ありません。

関連する問題