2015-10-20 144 views
0

我想太多圖片上傳到服務器,但是,這樣做上傳圖片不能正常工作

我用下面的代碼,但不知道什麼是錯在那裏

遇到錯誤
+(void) HTTPPostImage:(NSString *) stringURL andParameter:(NSData *) imageData andSelector:(SEL) selector andTarget:(id) target{ 

    AFHTTPRequestOperationManager *manager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:[NSURL URLWithString:stringURL]]; 
    // NSData *imageData = UIImageJPEGRepresentation(self.avatarView.image, 0.5); 
    NSDictionary *parameters =NULL; 
    NSString *myUUID = [[NSUUID UUID] UUIDString]; // create a UUID 

    NSLog(@"myUUID%@",myUUID); 


    AFHTTPRequestOperation *op = [manager POST:@"" parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { 
     [formData appendPartWithFileData:imageData name:@"public.image" fileName:@"photo.jpg" mimeType:@"image/jpeg"]; 
     //[formData appendPartWithFileData:imageData name:@"file" fileName:myUUID mimeType:@"image/jpeg"]; 

    } success:^(AFHTTPRequestOperation *operation, id responseObject) { 
     NSLog(@"Success: %@ ***** %@", operation.responseString, responseObject); 
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
     NSLog(@"Error: %@ ***** %@", operation.responseString, error); 
    }]; 
    [op start]; 
} 

我不知道什麼是錯在這個參數

[formData appendPartWithFileData:imageData name:@"public.image" fileName:@"photo.jpg" mimeType:@"image/jpeg"]; 

對於服務器參數

我不知道我是否做了錯誤或服務器已經做了

enter image description here

回答

0

添加您的網址最後一個組件名稱並改變你這樣的代碼:

AFHTTPRequestOperation *op = [manager POST:@"suburl.php" parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { 
     [formData appendPartWithFileData:imageData name:@"userfile" fileName:@"photo.jpg" mimeType:@"image/jpeg"]; 
     //[formData appendPartWithFileData:imageData name:@"file" fileName:myUUID mimeType:@"image/jpeg"]; 

AFHTTPRequestOperationManager *manager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:[NSURL URLWithString:@"http://yourbaseurl.com/"]]; 
// NSData *imageData = UIImageJPEGRepresentation(self.avatarView.image, 0.5); 
NSDictionary *parameters =NULL; 
NSString *myUUID = [[NSUUID UUID] UUIDString]; // create a UUID 

NSLog(@"myUUID%@",myUUID); 


AFHTTPRequestOperation *op = [manager POST:@"suburl.php" parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { 
    [formData appendPartWithFileData:imageData name:@"userfile" fileName:@"photo.jpg" mimeType:@"image/jpeg"]; 
    //[formData appendPartWithFileData:imageData name:@"file" fileName:myUUID mimeType:@"image/jpeg"]; 

} success:^(AFHTTPRequestOperation *operation, id responseObject) { 
    NSLog(@"Success: %@ ***** %@", operation.responseString, responseObject); 
} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
    NSLog(@"Error: %@ ***** %@", operation.responseString, error); 
}]; 
[op start]; 
+0

我買了名稱混淆:@「userfile的」文件名:@「photo.jpg」 mime類型:@「圖像/ JPEG」]應該是什麼,這些參數在用戶的情況下點擊image –

+0

@「userfile」是php服務端的圖像參數類型@nischalhada – Nikunj

+0

我用 - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info來捕獲圖像。你可以給我一些想法什麼將參數 –

0

請嘗試下面的代碼。希望爲你工作。

NSData *tempData = [NSData dataWithContentsOfFile:YOUR_IMAGE_FILE_PATH]; 

    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 
    manager.requestSerializer = [AFJSONRequestSerializer serializer]; 

    [manager POST:YOUR_REQUEST_URL parameters:YOUR_PARAMETERS constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { 
     if (tempData) { 
      [formData appendPartWithFileData:tempData name:@"user_image" fileName:@"avatar.jpeg" mimeType:@"image/jpeg"]; 
     } 
    } success:^(AFHTTPRequestOperation *operation, id responseObject){ 
     NSError *error; 
     NSDictionary* json = [NSJSONSerialization 
           JSONObjectWithData:operation.responseData 
           options:kNilOptions 
           error:&error]; 
     NSLog(@"Registration JSON:- %@",json); 
    }failure:^(AFHTTPRequestOperation *operation, NSError *error){ 
     NSLog(@"Error: %@", error); 
    }]; 

「user_image」是圖像的關鍵參數。該密鑰在API請求參數中設置。

謝謝:)

+0

YOUR_IMAGE_FILE_PATH什麼是包含在這裏和user_image我很困惑 –

+0

YOUR_IMAGE_FILE_PATH是在服務器上發送的圖像的路徑,user_image是圖像的參數。該參數包含圖像數據。 –

+0

我不知道我的身邊或服務器端是否有錯誤 –