0

リクエストが作成された直後にダウンロード先のファイルパスを設定すると、ASIHTTPRequestを使用してiOSデバイスにファイルをダウンロードします。コードは次のとおりです。

SIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
    [request setDownloadDestinationPath:@"/Users/zxllf23/Desktop/download/tmp.zip"]];
    [request setTemporaryFileDownloadPath:@"/Users/zxllf23/Desktop/download/tmp.zip.download"]];

しかし、これは快適ではありません。サーバー上の bcs の異なるファイルには、http 応答ヘッダーの Content-Disposition から取得できるファイル名が異なるため、ファイル名を自動判別したいので、requestDidReceiveResponseHeadersSelector: メソッドにコードを書きました。

-(void) downloadReceiveRespone:(ASIHTTPRequest *)request
{
    NSString *CoententDecription = [[request responseHeaders] objectForKey:@"Content-Disposition"];
    NSString *filename = [self getFilenameFrom:CoententDecription];

    [request setDownloadDestinationPath:[NSString stringWithFormat:@"/Users/zxllf23/Desktop/download/%@",filename]];
    [request setTemporaryFileDownloadPath:[NSString stringWithFormat:@"/Users/zxllf23/Desktop/download/%@.download",filename]];

}

ファイルを正常にダウンロードできますが、適切に開くことができず、ダウンロードしたファイルのデータを元のファイルと比較しましたが、同じではありません

誰でもこの問題について私を助けることができますか、私は非常に感謝しています.

4

1 に答える 1

0

リクエストの開始後に setDownloadDestinationPath を設定することはサポートされていません。これにより、正しく機能しない理由が説明されます。

要求が終了した後にファイルを移動するか、自分でデータをファイルに書き込みます。

于 2012-06-18T02:10:28.317 に答える