我使用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]];
}
我可以成功下载文件,但无法正常打开,我将下载的文件数据与原始文件进行比较,它们不一样
任何人都可以帮我解决这个问题,我将非常感激。
答案 0 :(得分:0)
不支持在请求开始后设置setDownloadDestinationPath,这可以解释为什么它无法正常工作。
请求完成后移动文件,或者自己将数据写入文件。