0

我正面临这个奇怪的问题。在点击一个按钮时,我正在从我的 PHP 服务器下载媒体文件,例如图像、视频和音频。对于我使用的下载部分ASIHTTPRequest

我使用此代码恢复下载:

NSString *audio_url_f = [myDetailPeom poem_audio_url];

NSURL *url = [NSURL URLWithString:audio_url_f];

ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDelegate:self];

[request setShouldContinueWhenAppEntersBackground:YES];
[request setNumberOfTimesToRetryOnTimeout:3];
[request setDelegate:self];
        //
NSString *path = [NSString stringWithFormat:@"%@/Documents/%@",NSHomeDirectory(),fileName];
path = [path stringByAppendingString:@".download"];   

// This file has part of the download in it already
[request setTemporaryFileDownloadPath:path];
[request setAllowResumeForFileDownloads:YES];
[request setDownloadDestinationPath:filePath];

//
[request setUserInfo:[NSDictionary dictionaryWithObject:@"audio" forKey:@"type"]];
[request setDidFinishSelector:@selector(requestFinished:)];
[request setDidFailSelector:@selector(requestFailed:)];
[request startAsynchronous];

如果网络出现故障,下载将停止并正常恢复。部分下载的文件在正确的位置创建,并.download附加在其文件名中。网络可用后,它将正确恢复下载。

现在我将我的 Web 应用程序移动到实时 PHP 服务器(两者都在同一台服务器上)。但是根本没有创建部分文件。

4

3 回答 3

0

除非您在 URL 中犯了错误,否则极不可能。大多数时候犯的一个常见错误是在移动到实时服务器时,如果它的 HTTPS 应该在 ASI 中正确处理。如果是这样,请尝试将 setValidatesSecureCertificate 设置为 NO。

由于不推荐使用 ASIHttpRequest,您应该根据需要考虑迁移到 AFNetworking 或 RestKit 或其他一些框架。

于 2013-01-30T11:04:28.273 回答
0

试试这个代码来获取文档目录?

NSString *documentDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];

NSString *path= [documentDirectory stringByAppendingPathComponent:@"test.download"];

使用缓存目录而不是文档目录总是更好。

于 2013-01-30T12:05:34.157 回答
0

这会发生在你的场景中吗?

ASIHTTPRequest setTemporaryFileDownloadPath:不适用于某些 URL

检查它是否重定向。

于 2013-01-31T11:54:02.023 回答