gpt4 book ai didi

php - iPhone - 将图像上传到服务器时如何显示进度条?

转载 作者:行者123 更新时间:2023-11-29 03:19:50 25 4
gpt4 key购买 nike

当用户将任何图像上传到服务器时,我想显示一个进度条。我的图像已使用 php url 成功上传到服务器。但为此我没有使用任何 NSUrlConnection 类。实际上我正在从不同的不同 View Controller 类上传多个图像,所以我在我的 Util 类中添加了一个方法用于普通上传图像,我在其中传递图像数据和图像 ID。那么我如何在下面的情况下实现 NSUrlConnection 委托(delegate):

这是我的 Util 类方法:

+(void)uploadImageOnServer:(NSData *)imageData forId:(NSString *)imageId
{
NSString *urlString = @"http://url...............";

// setting up the request object now
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init] ;

[request setURL:[NSURL URLWithString:urlString]];

[request setHTTPMethod:@"POST"];

NSString *boundary = @"---------------------------147378098314876653456641449";

NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];

[request addValue:contentType forHTTPHeaderField: @"Content-Type"];

/*
now lets create the body of the post
*/
NSMutableData *body = [NSMutableData data];

[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];

NSString *stringData = [NSString stringWithFormat:@"Content-Disposition: form-data; name=\"Documents\"; filename=\%@.jpg\r\n",imageId];

[body appendData: [stringData dataUsingEncoding:NSUTF8StringEncoding]];

[body appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];

[body appendData:[NSData dataWithData:imageData]];

[body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];

// setting the body of the post to the reqeust
[request setHTTPBody:body];

// now lets make the connection to the web
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
}

从我的 ViewController 类中,我调用上述方法将图像上传到服务器:

[Util uploadImageOnServer:positionData forId:positionImageId];

将一张图像上传到服务器大约需要 4-5 秒。我想添加进度 View ,如所附的屏幕截图。您能否指导我如何在我的 Util 类中集成常见的 NSUrlConnection 委托(delegate),以便向用户显示已上传的数据量?

谢谢。

enter image description here

最佳答案

您需要使用异步连接和 connection:didSendBodyData:totalBytesWritten:totalBytesExpectedToWrite: 委托(delegate)方法。

您还应该考虑使用 AFNetworking 及其提供的进度回调。

关于php - iPhone - 将图像上传到服务器时如何显示进度条?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21231676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com