【发布时间】:2015-05-18 14:09:23
【问题描述】:
这让我抓挠了很长时间。
我正在准备UIImage 作为HTTP request 的一部分发布。我正在使用以下代码执行此操作:
[postData appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[postData appendData:[[NSString stringWithFormat:@"Content-Disposition: attachment; name=\"q%@\"; filename=\".jpg\"\r\n" , key] dataUsingEncoding:NSUTF8StringEncoding]];
[postData appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[postData appendData:[NSData dataWithData:UIImageJPEGRepresentation(image, 1.0)]];
[postData appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
我遇到的问题是postData 在运行这些行之后是null。
使用NSLog 我发现[postData appendData:[NSData dataWithData:UIImageJPEGRepresentation(image, 1.0)]]; 是导致这种情况发生的行。然后我继续查看图像是否有问题。 UIImageJPEGRepresentation(image, 1.0) 将大量数据输出到控制台,并将图像添加到 UIImageView 会显示我期待的 .jpg。
我完全被迷住了。请帮忙>.
编辑
在下面的一些崩溃之后,我意识到它肯定是在发布图像 .
NSLog(@"postData = %@",[postData length]);
显示 280861(字节?),但带有 <?php print_r($_FILES); ?> 的 PHP 文件返回数组 {}。
【问题讨论】:
-
如何创建
postData实例? -
NSString jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; NSStringpost = [NSString stringWithFormat:@"&json=%@", jsonString]; NSMutableData *postData = [NSMutableData dataWithData:[post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:NO]]; UIImage *image = xxxxx
-
刚刚注意到那是 ASCII 和其余的 UTF8。我改变了这个并没有改善
-
只是为了实验:改用 UIImagePNGRepresentation。
-
我已经试过了,同样的结果:(
标签: iphone ios objective-c nsdata