2015-10-20 171 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

我不知道我的身边或服务器端是否有错误 –