AFNetworking 上传文件

本文转载至 http://blog.csdn.net/hmt20130412/article/details/36487055

文件上传AFNetworking

@第一种:我的

[objc] view plaincopy

  1. #pragma mark - AFNetworking上传文件
  2. - (void)didClickUploadButtonAction{
  3. NSString *fileName = @"hmt";
  4. //  确定需要上传的文件(假设选择本地的文件)
  5. NSURL *filePath = [[NSBundle mainBundle] URLForResource:fileName withExtension:@"png"];
  6. NSDictionary *parameters = @{@"name":@"额外的请求参数"};
  7. AFHTTPRequestOperationManager *requestManager = [AFHTTPRequestOperationManager manager];
  8. [requestManager POST:@"http://192.168.10.18:8080/AFNetworkingServer/upload" parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
  9. /**
  10. *  appendPartWithFileURL   //  指定上传的文件
  11. *  name                    //  指定在服务器中获取对应文件或文本时的key
  12. *  fileName                //  指定上传文件的原始文件名
  13. *  mimeType                //  指定商家文件的MIME类型
  14. */
  15. [formData appendPartWithFileURL:filePath name:@"file" fileName:[NSString stringWithFormat:@"%@.png",fileName] mimeType:@"image/png" error:nil];
  16. } success:^(AFHTTPRequestOperation *operation, id responseObject) {
  17. [[[UIAlertView alloc] initWithTitle:@"上传结果" message:[[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding]  delegate:self cancelButtonTitle:@"" otherButtonTitles:nil] show];
  18. } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
  19. NSLog(@"获取服务器响应出错");
  20. }];
  21. }

@第二种:(朋友的)

[objc] view plaincopy

  1. NSData *imageData = UIImagePNGRepresentation(image);
  2. //转码成UTF-8  否则可能会出现错误
  3. NSString *URLTmp = [NSString stringWithFormat:@"%@%@",CGBaseURL,path];
  4. NSString *URLTmps = [URLTmp stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
  5. URLTmp = URLTmps;
  6. NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"POST" URLString:URLTmp parameters:body constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
  7. [formData appendPartWithFileData:imageData name:@"headerImg" fileName:@"123.png" mimeType:@"image/png"];
  8. } error:nil];
  9. AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
  10. NSProgress *progress = nil;
  11. manager.responseSerializer = [AFHTTPResponseSerializer serializer];
  12. NSURLSessionUploadTask *uploadTask = [manager uploadTaskWithStreamedRequest:request progress:&progress completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {
  13. if (error) {
  14. NSLog(@"Error: %@", error);
  15. } else {
  16. block(responseObject);
  17. }
  18. }];
  19. [uploadTask resume];
时间: 2024-10-06 18:32:41

AFNetworking 上传文件的相关文章

AFNetworking上传文件

-(void)upload{ AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; NSDictionary *params = @{@"deviceName":@"imageName",@"deviceId":@"1",@"deviceChildId":@"11"}; [man

AFNetworking框架_上传文件或图像server

的文本 XXXXXXXXXX在自己的论点更填写 - (void)uploadImageWithImage:(NSString *)imagePath { //上传其它所需參数 NSString *userId=XXXXXXXXXXX; NSString *token=XXXXXXXXXXX; //上传请求POST AFHTTPClient *client=[AFHTTPClient clientWithBaseURL:[NSURL URLWithString:@""]]; NSStri

AFNetworking框架_上传文件或图片到服务器

文中的 XXXXXXXXXX更具你自己的参数填写 - (void)uploadImageWithImage:(NSString *)imagePath { //上传其他所需参数 NSString *userId=XXXXXXXXXXX; NSString *token=XXXXXXXXXXX; //上传请求POST AFHTTPClient *client=[AFHTTPClient clientWithBaseURL:[NSURL URLWithString:@""]]; NSStr

使用post方法上传文件的两种做法

项目需要使用HTTP协议中的POST方法上传文件,稍微总结了一下,将过程贴出来,方便以后参考.有两种方法,第一是使用NSMutableURLRequest完全从零开始设置,可以加深对HTTP协议的理解:第二种是直接使用别人封装好的代码,如AFNetworking. 方法一,从0开始文件上传 NSURL *url = [NSURL URLWithString:@"http://yo.diveinedu.com/upload.php"];NSMutableURLRequest *reque

java实用技能 上传文件 等等

1.IOS  AES对称加密,加密结果不同,问题解决 IOS http post请求,使用AFNetworing 框架,默认请求content-type为application/json ,所以无法使用@RequestParam或request.getParameter获取值 当把content-type改为applicaion/x-www-...  后,body中使用@RequestParam或request.getParameter仍然获取不到参数 加解密的结果,编码的结果,服务端有可能字母

万家报账平台没有“上传文件”按钮的解决办法

在有的电脑没有"上传文件"的按钮? 第一步:首先检查浏览器设置. 第二步:找到IE的Internet选项菜单,开启菜单栏的根据下列方面找,如下图: 第三步:找到Internet选项后,点击,选择安全选项卡,并点击"自定义级别" 第四步:找到"将文件上载到服务器时包含本地目录路径"选择"启用".然后点击确定关闭IE,重启打开. 第五步:更新浏览器的flash版本.在百度中搜索"flash player官网"即

通过jQuery Ajax使用FormData对象上传文件

转自:http://www.cnblogs.com/labnizejuly/p/5588444.html FormData对象,是可以使用一系列的键值对来模拟一个完整的表单,然后使用XMLHttpRequest发送这个"表单". <form id="uploadForm" enctype="multipart/form-data"> <input id="file" type="file"

数据采集之Web端上传文件到Hadoop HDFS

前言 最近在公司接到一个任务,是关于数据采集方面的. 需求主要有3个: 通过web端上传文件到HDFS; 通过日志采集的方式导入到HDFS; 将数据库DB的表数据导入到HDFS. 正好最近都有在这方面做知识储备.正所谓养兵千日,用兵一时啊.学习到的东西只有应用到真实的环境中才有意义不是么. 环境 这里只做模拟环境,而不是真实的线上环境,所以也很简单,如果要使用的话还需要优化优化. OS Debian 8.7 Hadoop 2.6.5 SpringBoot 1.5.1.RELEASE 说明一下,这

ssh连接服务器以及scp上传文件方法

本地控制台输入 ssh [email protected]外网ip或内网ip,举例:ssh [email protected]      这是用用户名为root的用户登录192.168.133.196这个地址所在的后台.如果提示以下红色部分错误: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @ @@@@@@