0

我正在尝试为图像上传实现 UIProgressView,因此我将其设置为

uploadProgress = [[UIProgressView alloc] initWithProgressViewStyle:UIProgressViewStyleDefault];
[uploadProgress setFrame:CGRectMake(85, 19, 150, 9)];

imageRequest = [[ASIFormDataRequest alloc] initWithURL:[NSURL URLWithString:@"http://theurl.com"]];
[imageRequest setDelegate:self];
[imageRequest setDidFinishSelector:@selector(uploadedImage:)];
[imageRequest setDidFailSelector:@selector(asiRequestFailed:)];
[imageRequest setTimeOutSeconds:60];
[imageRequest addData:imgData forKey:@"file"];
[imageRequest addPostValue:[parameters yajl_JSONString] forKey:@"json"];
[imageRequest setUploadProgressDelegate:uploadProgress];
[imageRequest setShowAccurateProgress:YES];
[imageRequest startAsynchronous];

它加载了一段时间,然后跳到几乎 100%,然后达到 100%,然后几秒钟后,它完成了。我的代码中是否缺少某些内容,或者我需要在服务器端做些什么?

谢谢

4

1 回答 1

1

跟踪 Post 操作总是会遇到这个问题。数据上传,然后您的应用程序必须等待服务器响应它已成功完成。ASIFormDataRequest 知道数据的增量发送,因此它可以准确地跟踪此进度,直到发送最后一位数据。但是,它无法知道您的服务器需要多长时间才能响应确认整个上传已成功接收(当您的 didFinishSelector 被调用时)。您的上传速度很快,跟踪进度高达 99%,然后一直保持在 99%,直到调用 uploadImage,这表明它已完成,100%。

于 2011-09-24T05:35:06.227 回答