@第一种
#pragma mark - AFNetworking上传文件
- (void)didClickUploadButtonAction{
NSString *fileName = @"hmt";
// 确定需要上传的文件(假设选择本地的文件)
NSURL *filePath = [[NSBundle mainBundle] URLForResource:fileName withExtension:@"png"];
NSDictionary *parameters = @{@"name":@"额外的请求参数"};
AFHTTPRequestOperationManager *requestManager = [AFHTTPRequestOperationManager manager];
[requestManager POST:@"http://192.168.10.18:8080/AFNetworkingServer/upload" parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
/**
* appendPartWithFileURL // 指定上传的文件
* name // 指定在服务器中获取对应文件或文本时的key
* fileName // 指定上传文件的原始文件名
* mimeType // 指定商家文件的MIME类型
*/
[formData appendPartWithFileURL:filePath name:@"file" fileName:[NSString stringWithFormat:@"%@.png",fileName] mimeType:@"image/png" error:nil];
} success:^(AFHTTPRequestOperation *operation, id responseObject) {
[[[UIAlertView alloc] initWithTitle:@"上传结果" message:[[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding] delegate:self cancelButtonTitle:@"" otherButtonTitles:nil] show];
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"获取服务器响应出错");
}];
} </pre>
@第二种:
NSData *imageData = UIImagePNGRepresentation(image);
//转码成UTF-8 否则可能会出现错误
NSString *URLTmp = [NSString stringWithFormat:@"%@%@",CGBaseURL,path];
NSString *URLTmps = [URLTmp stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
URLTmp = URLTmps;
NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"POST" URLString:URLTmp parameters:body constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
[formData appendPartWithFileData:imageData name:@"headerImg" fileName:@"123.png" mimeType:@"image/png"];
} error:nil];
AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
NSProgress *progress = nil;
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
NSURLSessionUploadTask *uploadTask = [manager uploadTaskWithStreamedRequest:request progress:&progress completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {
if (error) {
NSLog(@"Error: %@", error);
} else {
block(responseObject);
}
}];
[uploadTask resume]; </pre>
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有