2011-01-22 14 views
6

क्या कोई मुझे बता सकता है कि मैं UIImage ऑब्जेक्ट को अपलोड करने के लिए उद्देश्य-सी में ASIHTTPRequest ऑब्जेक्ट का उपयोग कैसे कर सकता हूं? क्या मुझे इसे एनएसडीटा ऑब्जेक्ट में बदलने की ज़रूरत है?ASIHTTP: UIImage अपलोड करें?

(यह एक अवतार अपलोड यूआरएल के लिए है)

E.g. 

UIImage *toUpload = [UIImage imageNamed:@"test.jpg"] 

URL: "http://www.example.com/api/users/avatar/upload?access_token=12345" 
RequestType: PUT 

उत्तर

14

यहाँ एक उदाहरण है ASIFormRequest का उपयोग कर यह भी कहा कि यह देखते हुए अधिकतम आकार

//Compress the image 
CGFloat compression = 0.9f; 
CGFloat maxCompression = 0.1f; 
int maxFileSize = 250*1024; 

NSData *imageData = UIImageJPEGRepresentation(yourImage, compression); 

while ([imageData length] > maxFileSize && compression > maxCompression) 
{ 
    compression -= 0.1; 
    imageData = UIImageJPEGRepresentation(yourImage, compression); 
} 

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:whereYourServerEndPointIs.com]]; 

[request addData:imageData withFileName:@"someFileName.jpeg" andContentType:@"image/jpeg" forKey:@"uploadedImage"]; 
+0

महान जवाब देने के लिए छवि को संपीड़ित करने का प्रयास करेंगे। मुझे यह एक प्रोजेक्ट के लिए बुकमार्क किया गया है जिसे मैं सी # –

+0

ग्रेट उत्तर के साथ काम कर रहा हूं। जबकि लूप डिजाइन वास्तव में उपयोगी है। –

+0

'setData'' पर 'addData' का उपयोग करने का कोई कारण? – Tim