将UIImage转换为NSData

时间:2013-08-29 07:32:57

标签: ios internet-explorer uiimage nsdata

我需要将图片从iOS设备上传到网络服务。在上传我使用的图像时;

    NSData* pictureData = UIImagePNGRepresentation(originalImage);

实际上它工作正常。但是我上传的图片并没有出现在IE中。 我尝试上传JPG和PNG我可以在所有其他浏览器中看到图像,但它在IE中不起作用。所以我认为它可以将其转换为NSData。

还有其他方法可以将UIImage转换为NSData吗?

或其他任何可能导致问题的想法?

以下是我上传图片的方式;

NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary];
[request setValue:contentType forHTTPHeaderField: @"Content-Type"];

NSMutableData *body = [NSMutableData data];

NSData* pictureData = UIImagePNGRepresentation(originalImage);

if (pictureData) {
    [body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"; filename=\"image.JPG\"\r\n", FileParamConstant] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[@"Content-Type: image/jpeg\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:pictureData];
    [body appendData:[[NSString stringWithFormat:@"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
}

[body appendData:[[NSString stringWithFormat:@"--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];

1 个答案:

答案 0 :(得分:1)

您正在将图像转换为PNG表示,然后将其重命名为image.JPG

IE可能会对此感到困惑。 尝试将图像重命名为image.PNG或使用UIImageJPEGRepresentation