这让我抓了很长时间。
我正在准备将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文件返回Array {}
。 最佳答案
UIImageJPEGRepresentation(image, 1.0)
返回无法转换为NSString的NSData对象。 jpeg不包含有效字符。而且任意数据都不能转换为有效字符串。 UIImageJPEGRepresentation(image, 1.0)
返回nil,[NSData dataWithData:]
调用也可以确保您附加到postData的数据不是nil。 [NSData dataWithData:nil];
返回一个空的NSData实例,而不是nil。 您不能将
postData
转换回NSString。如果要检查图像是否是NSData对象的一部分,可以查看postData的长度。关于iphone - NSData appendData:UIImageJPEGRepresentation()返回nil,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18019312/