将多个图像发送到服务器
Posted
技术标签:
【中文标题】将多个图像发送到服务器【英文标题】:Send multiple of images to the server 【发布时间】:2013-12-02 06:23:28 【问题描述】:我目前正在开发 iPhone 反馈类型的应用程序。用户可以从相机拍摄多张图像。他也可以对此提供反馈和评论。所以,我需要将文本和图像都发送到服务器。为此,我创建了一个具有所有属性(所有文本和图像)的实体类。所以当时我只需要使用单个 php url 通过 POST 发送 70 多个缩略图。由于JSON数据的内存很大,我们可以使用他的图像UUID而不是数据将图像发送到服务器吗?
POST的最大限制默认为8MB左右。我们可以将图像UUID而不是图像数据发送到服务器还是有其他方式?
这是我的代码:
+ (NSString *)getNewGUID
CFUUIDRef theUUID = CFUUIDCreate(NULL);
CFStringRef string = CFUUIDCreateString(NULL, theUUID);
CFRelease(theUUID);
return (__bridge NSString *)string;
如果我将使用图像 UUID,那么图像是否也会显示在其他 iPhone 设备上?
请帮帮我。
【问题讨论】:
我不确定“图像 UUID”是什么意思?为什么要一次上传 70 张缩略图? @joiningss感谢rpy,检查我更新的问题..创建图像UUID @JoiningssHi..你能不能看看这个链接,给我一些想法......***.com/questions/20495417/… 【参考方案1】:uuid 不包含图像包含的所有信息,服务器无法获取完整图像,因此无法仅通过 uuid 在其他设备上显示这些图像。您必须自己上传图片。
根据this,即使是图片的Base64编码的二进制数据(将图片转换为纯文本)也是原始数据大小的1.37倍。
为了减少客户端和服务器之间传输的数据的大小,您可以做一些图像大小调整工作,例如:
- (UIImage*)resizeImage
CGRect drawRect = RECT_WITH_NEW_SIZE_HERE;
CGSize newSize = drawRect.size;
UIGraphicsBeginImageContext(newSize);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextClearRect(context, CGRectMake(0, 0, newSize.width, newSize.height));
CGContextSetInterpolationQuality(context, kCGInterpolationMedium);
[YOUR_IMAGE drawInRect:drawRect blendMode:kCGBlendModeNormal alpha:1];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
【讨论】:
以上是关于将多个图像发送到服务器的主要内容,如果未能解决你的问题,请参考以下文章
如何使用Android的MultipartEntity将多个图像发送到服务器