我有图像选择器,可以从内置相机中检索图像:
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
[info objectForKey:UIImagePickerControllerEditedImage];
UIImage *chosenImage = info[UIImagePickerControllerOriginalImage];
self.imageView.image = chosenImage;
NSData *image = UIImagePNGRepresentation(chosenImage);
[self setImageDataToSend:image];
[picker dismissViewControllerAnimated:YES completion:NULL];
}
然后我想使用http上传照片
像这样:
NSData *imageData = UIImagePNGRepresentation([UIImage imageNamed:@"image.png"]);
NSMutableURLRequest *request = [[NSMutableURLRequest alloc]
initWithURL:[NSURL
URLWithString:@"http://******.co.uk/***/imageupload.php"]];
[request setHTTPMethod:@"POST"];
[request setValue:@"image/png"
forHTTPHeaderField:@"Content-type"];
[request setValue:[NSString stringWithFormat:@"%lu",
(unsigned long)[imageData length]]
forHTTPHeaderField:@"Content-length"];
[request setHTTPBody:imageData];
[[NSURLConnection alloc] initWithRequest:request delegate:self];
这会从应用程序中选择一个名为“image.png”的图像。我希望它从图像选择器中拾取 NSData *图像
这里还有 imageupload.php
:
<?php
$handle = fopen("image.png", "wb"); // write binary
fwrite($handle, $HTTP_RAW_POST_DATA);
fclose($handle);
print "Received image file.";
?>
你知道有什么更好的方法吗?
最佳答案
您使用要发送的数据调用方法 setImageDataToSend:
,然后在这一行忽略它:
NSData *imageData = UIImagePNGRepresentation([UIImage imageNamed:@"image.png"]);
您可能想省略该行并更改:
[request setHTTPBody:imageData];
到:
[request setHTTPBody:[self imageDataToSend]];
关于php - 上传图像选择器照片 ios,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23228559/