php - 上传图像选择器照片 ios

标签 php ios objective-c http uiimagepickercontroller

我有图像选择器,可以从内置相机中检索图像:

- (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/

相关文章:

javascript - 特定 URL 每 5 秒刷新一次表

php - 在 codeigniter php 框架中创建无限 session

javascript - 使用 php 创建粘贴按钮

ios - CATransaction: View 在完成时闪烁

ios - Clevertap 推送通知声音问题

php - jQuery getJSON() 似乎无法正常工作

ios - 如何在 Swift 中访问存储在marker.userData中的Google map 标记数据

objective-c - 在 AppDelegate 中存储、访问和编辑字符串

objective-c - 如何在WebView中显示NSString内容(Cocoa Mac应用程序)

iPhone:以编程方式访问语音备忘录