NSURLConnection を使用して、iPhone の Web から大きなファイルをダウンロードします。「didReceiveData」メソッドを使用して、Documents フォルダー内のファイルにデータを追加します。それは正常に動作します。
ダウンロードが中断された場合 (たとえば、ユーザーが「ホーム」ボタンを押したために)、最初からではなく、ユーザーが次にアプリケーションを起動したときにダウンロードを続行できるようにしたいと考えています!
誰でも私を助けることができますか?
ASIHTTPRequestには、ダウンロードを再開するための使いやすいサポートがあります。
http://allseeing-i.com/ASIHTTPRequest/How-to-use#resume
または、既存のデータのサイズを確認して、ダウンロード済みのデータの量を確認し、 NSMutableURLRequestに「Range」ヘッダーを設定します。
[request addValue:@"bytes=x-" forHTTPHeaderField:@"Range"];
..ここで、xは、既に持っているデータのバイト単位のサイズです。これにより、バイトxから始まるデータがダウンロードされます。次に、このデータを受け取ったときにファイルに追加できます。
ダウンロード元のWebサーバーは、ダウンロードしようとしているリソースの部分的なダウンロードをサポートしている必要があることに注意してください。サポートしている場合は、Accept-Rangesヘッダーを送信します。通常、動的に生成されたコンテンツ(サーバー上のスクリプトによって生成されたページなど)のダウンロードを再開することはできません。
HTTP 標準を見て、特定のオフセットからリソースの転送を開始するリクエストを作成する方法を確認してください。コードが見つかりません。申し訳ありません。
私が思いつく唯一の方法は、ダウンロードしているファイルを小さなファイルに分割することです。を使用できます。
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
ファイルの各部分がいつ終了したかを判断し、ダウンロードされなかった最後の部分からダウンロードを再開する方法。