我从2天卡住了,我想要显示downlaod进度条。 我发送json发送到服务器,并在响应服务器发送给我的视频数据。 要显示进度条我写像如何将数据存储在did-receive-data中的NS-Mutable-data中,然后写入文件
一些逻辑代码在ASIhttep
我正在与附加全球NSmutabledata
和在请求做方法接收数据didreceivedata
方法我写,全球Nsmutalbedata
成文件。 但文件是空白的,它不会得到存储到文件。
我知道ASIHttprequest是旧图书馆,但每个人都建议我使用AFnetworking,但我不想更改代码,因为它会花费很多时间,我必须再次阅读文档。
任何人都可以帮助我如何追加数据,并在downlaod完成后将附加数据写入文件?
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[[NSURL alloc] initWithString:@"http://testing.io/dev.php/video/verifyReceipt"]];
[request setDidReceiveDataSelector:@selector(request:didReceiveData:)];
[request setPostValue:resultAsString forKey:@"verify"];
[request setDidFinishSelector:@selector(requestDone:)];
[request setTimeOutSeconds:120];
[request setDelegate:self];
[request setNumberOfTimesToRetryOnTimeout:2];
[request setDownloadProgressDelegate:progressBar];
request.showAccurateProgress = YES;
[request startSynchronous];
}
-(void)request:(ASIHTTPRequest *)request didReceiveData:(NSData *)data
{
[videoData appendData:data];
NSLog(@"data is %@",data);
}
- (void)requestDone:(ASIHTTPRequest *)request
{
//[MBProgressHUD hideHUDForView:self.view animated:YES];
// SAVED PDF PATH
// Get the Document directory
NSString *documentDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
// Add your filename to the directory to create your saved pdf location
NSString* movLocation = [documentDirectory stringByAppendingPathComponent:[fileName stringByAppendingString:@".mov"]];
if(request.responseStatusCode==200)
{
[videoData writeToFile:movLocation atomically:NO];
NSLog(@"in request done sucsessfully downlaod and store in database %d",request.responseStatusCode);
[DBHelper savePurchaseId:fileName];
[self movieReceived];
}
else
{
NSLog(@"in request downlaod and store in database failed %@",request.responseHeaders);
}
}
问题是什么?我想象一下,在你的情况下,videoData是一个NSMutableData,所以在dowload中你可以在iPhone磁盘上写文件,就像你做的那样...当你说追加意味着你有一个部分下载并且你想恢复下载并将数据附加到现有文件? – Manu
@Manu是的,我想追加旧的数据与新的接收数据,并在完成后将其写入文件...但我的文件没有创建..我只是想显示进度条的下载..所以这就是我正在使用didreceivedata通过使用,我可以显示多少数据,我得到并更新progres酒吧..我使用HUD进度条不是简单的进度条 –