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

これはあなたのシナリオで起こりますか?

ASIHTTPRequest setTemporaryFileDownloadPath: 一部の URL で機能しない

リダイレクトするかどうかを確認します。

于 2013-01-31T11:54:02.023 に答える
0

URL を間違えていない限り、その可能性はほとんどありません。ほとんどの場合に行われる一般的な間違いの 1 つは、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 に答える