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