2014-02-25 80 views
1

我用AFNetworking2.0上傳圖片,代碼如下:使用RESTAPI上傳圖像錯誤

 

    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; 
    [manager.requestSerializer setValue:PARSE_APPLICATION_ID forHTTPHeaderField:@"X-Parse-Application-Id"]; 
    [manager.requestSerializer setValue:PARSE_REST_API_KEY forHTTPHeaderField:@"X-Parse-REST-API-Key"]; 
    [manager.requestSerializer setValue:@"image/jpeg" forHTTPHeaderField:@"Content-Type"]; 

    UIImage *image = [UIImage imageNamed:@"resource.bundle/1.jpg"]; 
    NSData *imageData = UIImageJPEGRepresentation(image, 0.5); 

    [manager POST:@"https://api.parse.com/1/files/kingiol.jpg" parameters:nil constructingBodyWithBlock:^(id formData) { 
     [formData appendPartWithFileData:imageData name:@"avatar" fileName:@"avatar.jpg" mimeType:@"image/jpeg"]; 
    } success:^(NSURLSessionDataTask *task, id responseObject) { 
     NSLog(@"success:%@", responseObject); 
    } failure:^(NSURLSessionDataTask *task, NSError *error) { 
     NSLog(@"Error:%@", error); 
    }]; 

運行這並登錄成功塊,我也得到上傳回復:

 

    success:{ 
    name = "84cff2e0-605c-44de-909f-655379884b67-kingiol.jpg"; 
    url = "http://files.parse.com/5a56e6bf-a4b5-4155-9bf3-238550da126b/84cff2e0-605c-44de-909f-655379884b67-kingiol.jpg"; 
    } 

但是,當我複製的網址,然後用鉻打開,圖像是無效的圖像。

請幫忙

+0

您檢查使用解析數據瀏覽器的形象呢? –

+0

我拿起響應url,然後用chrome瀏覽器打開,然後下載文件,然後我打開下載的文件,顯示一個警告消息,這個文件不是有效的圖片 – Kingiol

回答

1

看來你的文件包含你所做的全部請求。嘗試打開與像文字編輯的文本編輯器文件,我已經做到了,我已經發現了這樣的事情:

--Boundary+0xAbCdEfGbOuNdArY 
Content-Disposition: form-data; name="avatar"; filename="avatar.jpg" 
Content-Type: image/jpeg 

<All binary image data> 
.... 
.. 
.. 

--Boundary+0xAbCdEfGbOuNdArY-- 

你爲什麼不使用解析SDK的功能呢?看看這個:

NSData *imageData = UIImagePNGRepresentation(image); 
PFFile *imageFile = [PFFile fileWithName:@"image.png" data:imageData]; 

PFObject *userPhoto = [PFObject objectWithClassName:@"UserPhoto"]; 
userPhoto[@"imageName"] = @"My trip to Hawaii!"; 
userPhoto[@"imageFile"] = imageFile; 
[userPhoto saveInBackground]; 

看到https://parse.com/docs/ios_guide#files-images/iOS

希望它有助於