簡體   English   中英

上傳圖片選擇器照片ios

[英]Uploading image picker photo ios

我有圖像選擇器從內置攝像頭檢索圖像:

- (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]];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM