AFNetworking使用null参数上传图像不起作用

我也想把图片上传到服务器,但是这样做却出错

我已经使用了下面的代码,但不知道什么是错误的在那里

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

对于服务器参数

我不知道我是否犯了错误,或服务器已经完成了

在这里输入图像说明

请尝试下面的代码。 希望为你工作。

  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请求参数中设置。

谢谢 :)

添加你的URL最后的组件名称,并像这样改变你的代码:

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