我目前正在开发iPhone反馈类型的应用程序。用户可以从相机拍摄多张图像。他也可以提供反馈和评论。所以,我需要将文本和图像发送到服务器。为此我创建了一个具有所有属性(所有文本和图像)的实体类。因此,当时我只需要使用单个php网址通过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设备中显示?
请帮帮我。
答案 0 :(得分:0)
uuid不包含图片包含的所有信息,并且服务器无法获得完整图像,因此它无法仅通过uuids在其他设备上显示这些图像。您必须自己上传图片。
即使Base64编码的二进制数据(将图像转换为纯文本)也是原始数据大小的1.37倍,大致根据definition in the ECMA 5.1 spec。
要减少客户端和服务器之间传输的数据大小,您可以执行一些图像大小调整工作,例如:
- (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;
}