使用ASIHTTPRequest在requestDidReceiveResponseHeadersSelector:method中设置下载目标文件路径时下载数据错误

时间:2012-06-15 17:33:54

标签: iphone asihttprequest filenames content-disposition

我使用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 respone标头的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]];

}

我可以成功下载文件,但无法正常打开,我将下载的文件数据与原始文件进行比较,它们不一样

任何人都可以帮我解决这个问题,我将非常感激。

1 个答案:

答案 0 :(得分:0)

不支持在请求开始后设置setDownloadDestinationPath,这可以解释为什么它无法正常工作。

请求完成后移动文件,或者自己将数据写入文件。