iOS Post请求,发送图像Base64编码

时间:2014-05-20 15:06:44

标签: ios objective-c http uiimage ios7.1

我想知道是否有人可以查看我的代码。当我尝试发送一个简单的字符串,如注释掉的行时,它可以工作。但是,如果我尝试发送Base64编码的字符串,则某些内容无效。

UIImage *tempImage = _imageView.image;
NSData *imageData = UIImageJPEGRepresentation(tempImage, 1);
NSString *base64String = [imageData base64EncodedStringWithOptions:0];

NSData *data = [base64String dataUsingEncoding:NSUTF8StringEncoding];

NSURL *url = [NSURL URLWithString:@"http://website.ca/uploadPhoto.php"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];

[request setHTTPMethod:@"POST"];
[request setHTTPBody:data];

NSURLResponse *response;
NSError *err;
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&err];
NSLog(@"responseData: %@", responseData);

1 个答案:

答案 0 :(得分:1)

我在这里看到了几个问题。

  1. 您没有设置内容类型。
  2. 您是对内容进行编码的基础,而不会告诉服务器您是对内容进行编码的基础。
  3. 上传表单通常不接受直接64位编码的jpeg图像。
  4. 我的猜测是你需要发送multipart/form-data。找出需要发送到服务器的字段,然后您就可以创建正确的请求。

    有几个关于使用NSURLRequest将多部分表单数据发送到服务器的教程。 Here是我找到的第一个。