我已经学会了两种在服务器上上传图像的方法(可能还有更多..)。
1) 创建 NSData 并将其添加到请求正文中
2)创建字节数组并像简单数组一样以json形式发送
1) 创建 NSData 并将其添加到请求正文
使用此代码从图像创建 NSData
NSData *imageData = UIImagePNGRepresentation(myimage);
然后将其添加到请求正文中
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:urlString]];
[request setHTTPMethod:@"POST"];
[body appendData:[NSData dataWithData:imageData]];
[request setHTTPBody:body];
执行请求,图像将上传到服务器。
2)创建字节数组并像简单数组一样以 json 形式发送
创建图像字节数组
NSData *imageData = UIImagePNGRepresentation(myimage);
const unsigned char *bytes = [imageData bytes];
NSUInteger length = [imageData length];
NSMutableArray *byteArray = [NSMutableArray array];
for (NSUInteger i = 0; i
{
[byteArray addObject:[NSNumber numberWithUnsignedChar:bytes[i]]];
}
而不是像任何其他数组一样使用 JSON 在请求中发送它
但是哪个是更好的解决方案,或者还有另一种更快的方法..
最简单和最快的方法是使用普通的 http POST 和 html 发送图像。
因为无论如何你都在使用 NSMutableRequest 来发送 POST 请求。因此,唯一重要的是数据的大小和获取原始图像所需的处理。因此,为了显着提高性能,您必须确保使用最少数量的 block 通过 web 发送项目,同时处理开销最小。
希望这bài báo可以帮助您做出选择。
如果需要,您可以使用一些压缩方案进一步减小大小,例如 cái này ,如果您有固定尺寸问题。
Tôi là một lập trình viên xuất sắc, rất giỏi!