2012-03-04 72 views
0

我必須上傳通過相機拍攝的圖像或通過uiimagepickerview上傳。我正在使用ASIHTTPRequest。將圖像上傳到網絡服務 - 初學者

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; 

[request setFile:@"/Users/ben/Desktop/ben.jpg" forKey:@"photo"]; 

1)因爲我是把照片從iPhone相機或從uiimagepickerview上傳,我需要知道我應該設置什麼樣的價值爲setFile(更換文本@"/Users/ben/Desktop/ben.jpg")?

2.)我也需要測試這個應用程序,所以沒有人知道相應的PHP代碼,我可以顯示所拍攝的圖像(在Web瀏覽器上)。教程或示例代碼

回答

2

爲了得到答案一號問題,請採取下面的代碼片段一看:

#import <MobileCoreServices/MobileCoreServices.h> 

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 
    BOOL isImage = ([[info objectForKey:UIImagePickerControllerMediaType] isEqualToString:kUTTypeImage]); 
    if (isImage) { 
     self.request = [ASIFormDataRequest requestWithURL:url]; 
     UIImage *originalImage = [info objectForKey:UIImagePickerControllerOriginalImage]; 
     NSData *imageData = UIImageJPEGRepresentation(originalImage, 0.7); 
     [self.request setData:imageData 
       withFileName:@"photo.jpg" 
       andContentType:@"image/jpeg" 
         forKey:@"photo"]; 
     [self.request start]; 
    } 
} 

請考慮增加財產到您的UIImagePiclerController委託類

@property(nonatomic, retain) ASIFormDataRequest *request; 

它將允許你停止請求或至少把它委託給零,如果你的對象被釋放,通過簡單地實施

- (void) dealloc { 
    [self.request cancel]; 
    self.request.delegate = nil; 
    [request release]; 
    [super dealloc]; 
} 
+0

謝謝你的回覆。 'UIImageJPEGRepresentation(originalImage,0.7)'中的'0.7'是什麼?我在我的代碼中使用ARC。你知道相應的PHP代碼,我可以測試它是否工作? – Illep 2012-03-04 15:18:45

+0

沒問題。您可以檢查0.7是JPEG壓縮質量。該參數值範圍是[0.0; 1.0]。根據[Apple文檔](https://developer.apple.com/library/ios/DOCUMENTATION/UIKit/Reference/UIKitFunctionReference/Reference/reference.html#//apple_ref/doc/uid/TP40006894-CH3-SW9), 「值0.0表示最大壓縮(或最低質量),而值1.0表示最低壓縮(或最佳質量)。」你明白要使用PHP,你必須使用PHP模塊等來設置Web服務器。我認爲使用自己的API託管一些圖像會更好。 – 2012-03-04 15:33:19

+0

爲什麼添加'#import '?哪種方法使用它? – Illep 2012-03-04 15:35:00