一:AFNetworking的文件上传:

主要几个以下类似

  1. - (BOOL)appendPartWithFileURL:(NSURL *)fileURL
  2. name:(NSString *)name
  3. error:(NSError * __autoreleasing *)error;

二:主要代码:

  1. //配置文件上传
  2.  
  3. //图片data 上传
  4. //UIImage *upImage = [UIImage imageNamed:@"testImage.png"];
  5. //NSData *imageData = UIImagePNGRepresentation(upImage);
  6.  
  7. //文件file上传,上传mp3音乐文件
  8. //NSString *theUpFilePath = [NSString stringWithFormat:@"%@testMusic.mp3",NSTemporaryDirectory()];
  9.  
  10. //上传个图片文件;
  11. NSString *theImagePath = [[NSBundle mainBundle] pathForResource:@"testImage" ofType:@"png"];
  12.  
  13. self.uploadFileClient = [AFHTTPClient clientWithBaseURL:[NSURL URLWithString:kCOCOA_FileUPload]];
  14. NSMutableURLRequest *fileUpRequest = [_uploadFileClient multipartFormRequestWithMethod:@"POST" path:@"" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
  15.  
  16. //[formData appendPartWithFileData:imageData name:@"file" fileName:@"testImage" mimeType:@"image/png"];
  17.  
  18. //[formData appendPartWithFileURL:[NSURL fileURLWithPath:theUpFilePath isDirectory:NO] name:@"file" fileName:@"testMusic.mp3" mimeType:@"audio/mpeg3" error:nil];
  19.  
  20. [formData appendPartWithFileURL:[NSURL fileURLWithPath:theImagePath] name:@"file" error:nil];
  21.  
  22. }];
  23.  
  24. self.fileUploadOp = [[AFHTTPRequestOperation alloc]initWithRequest:fileUpRequest];

三:文件上传Demo

  1. #pragma mark 文件上传;
  2.  
  3. //文件的 mine_type http://www.iana.org/assignments/media-types/media-types.xhtml
  4.  
  5. UIProgressView *uploadFileProgressView = [[UIProgressView alloc]initWithProgressViewStyle:UIProgressViewStyleDefault];
  6. uploadFileProgressView.center = CGPointMake(self.view.center.x, );
  7. uploadFileProgressView.progress = ;
  8. uploadFileProgressView.progressTintColor = [UIColor blueColor];
  9. uploadFileProgressView.trackTintColor = [UIColor grayColor];
  10. [self.view addSubview:uploadFileProgressView];
  11.  
  12. //开始
  13. UIButton *startUp = [UIButton buttonWithType:UIButtonTypeRoundedRect];
  14. startUp.frame = CGRectMake(, , , );
  15. [startUp setTitle:@"开始上传" forState:UIControlStateNormal];
  16. [startUp addTarget:self action:@selector(startUploadOP) forControlEvents:UIControlEventTouchUpInside];
  17.  
  18. [self.view addSubview:startUp];
  19.  
  20. //配置文件上传
  21.  
  22. //图片data 上传
  23. //UIImage *upImage = [UIImage imageNamed:@"testImage.png"];
  24. //NSData *imageData = UIImagePNGRepresentation(upImage);
  25.  
  26. //文件file上传,上传mp3音乐文件
  27. //NSString *theUpFilePath = [NSString stringWithFormat:@"%@testMusic.mp3",NSTemporaryDirectory()];
  28.  
  29. //上传个图片文件;
  30. NSString *theImagePath = [[NSBundle mainBundle] pathForResource:@"testImage" ofType:@"png"];
  31.  
  32. self.uploadFileClient = [AFHTTPClient clientWithBaseURL:[NSURL URLWithString:kCOCOA_FileUPload]];
  33. NSMutableURLRequest *fileUpRequest = [_uploadFileClient multipartFormRequestWithMethod:@"POST" path:@"" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
  34.  
  35. //[formData appendPartWithFileData:imageData name:@"file" fileName:@"testImage" mimeType:@"image/png"];
  36.  
  37. //[formData appendPartWithFileURL:[NSURL fileURLWithPath:theUpFilePath isDirectory:NO] name:@"file" fileName:@"testMusic.mp3" mimeType:@"audio/mpeg3" error:nil];
  38.  
  39. [formData appendPartWithFileURL:[NSURL fileURLWithPath:theImagePath] name:@"file" error:nil];
  40.  
  41. }];
  42.  
  43. self.fileUploadOp = [[AFHTTPRequestOperation alloc]initWithRequest:fileUpRequest];
  44.  
  45. [_fileUploadOp setUploadProgressBlock:^(NSUInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite) {
  46. startUp.enabled = NO;
  47. [startUp setTitle:@"正在上传" forState:UIControlStateNormal];
  48. CGFloat progress = ((float)totalBytesWritten) / totalBytesExpectedToWrite;
  49. [uploadFileProgressView setProgress:progress animated:YES];
  50.  
  51. }];
  52.  
  53. [_fileUploadOp setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
  54. startUp.enabled = NO;
  55. [startUp setTitle:@"完成" forState:UIControlStateNormal];
  56. NSLog(@"upload finish ---%@",[[NSString alloc]initWithData:responseObject encoding:NSUTF8StringEncoding]);
  57.  
  58. } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
  59. NSLog(@"error %@",error);
  60. }];
  61.  
  62. }
  63.  
  64. #pragma mark AFNetworking 文件上传
  65.  
  66. - (void)startUploadOP
  67. {
  68. [_fileUploadOp start];
  69. }

四:关于文件上传服务器,建议使用php,在 windows 上下载个 wamp 一键就配置成了php 服务器

php 文件上传接口:

查看我的文章:http://www.cnblogs.com/cocoajin/p/3491371.html

AFNetworking 文件上传Data,File图片,文件等上传的更多相关文章

  1. Linux服务器上实现数据库和图片文件的定时备份

    一. 1.首先创建一个目录,用于存放备份的数据   2.在该目录下创建两个子目录一个用于存放数据库的信息,一个用于存放图片资源       3.#数据库的备份 执行下面的命令    mysqldump ...

  2. 前台页面上传data image图片,java后台接收图片保存

    最近在项目中有这么一个需求,就是上传一个视频文件,然后要获取视频文件的第一帧图片,这个可以通过canvas获取得到,得到的是一个dataURL,之后还要将这个图片上传到云,这个时候如何操作就不清楚了, ...

  3. C#实现图片文件到数据流再到图片文件的转换 --转

    /----引入必要的命名空间 using System.IO; using System.Drawing.Imaging; //----代码部分----// private byte[] photo; ...

  4. C#实现图片文件到数据流再到图片文件的转换

    //----引入必要的命名空间using System.IO;using System.Drawing.Imaging; //----代码部分----// private byte[] photo;/ ...

  5. 使用fastDFS上传和下载图片文件

    package com.xuecheng.test.fastdfs;import org.csource.common.MyException;import org.csource.fastdfs.* ...

  6. PHP上传图片时,如何判断上传的文件是否为可用的图片文件

    利用getimagesize函数: function isImage($filename){$types = '.gif|.jpeg|.png|.bmp';//定义检查的图片类型if(file_exi ...

  7. 小程序上传base64的图片,可上传多张

    微信小程序上传图片转化为base64格式 clickimage: function(e) { var index = e.currentTarget.dataset.index; var count ...

  8. express,node.js实现获取本地文件夹下面的全部图片文件

    http://www.luyixian.cn/javascript_show_169354.aspx 按照网上的教程试了多次,处理了各种结果后还有报错, 最后的报错是cant find module ...

  9. txt文件每行内容与图片文件名字组合,输出txt格式

    import os dir_list = os.listdir('C:\\Users\\10107472\\Desktop\\practice\\JPEGImages')i=0f1=open('C:\ ...

随机推荐

  1. 洛谷——P2035 iCow

    P2035 iCow 题目描述 被无止境的农活压榨得筋疲力尽后,Farmer John打算用他在MP3播放器市场新买的iCow来听些音乐,放松一下.FJ的iCow里存了N(1 <= N < ...

  2. leetcode88 Merged Sorted Array

    题意:两个已排好序的数组,合并成新的数组. 解题思路:刚开始做题,完全找不到思路,想用最简单的插入法做,提示超时了大概是for用多了哈哈··看了下别人的方法果断佩服,利用好已排序这个特点,从后往前添加 ...

  3. linux的bash和shell关系

    shell通俗理解:把用户输入的命令翻译给操作系统. shell 是一个交互性命令解释器.shell独立于操作系统,这种设计让用户可以灵活选择适合自己的shell.shell让你在命令行键入命令,经过 ...

  4. 安装SQL2008时显示必须重启计算机才可以继续安装的错误—解决办法

    数据库学习已经有一段时间了,前几天进入了SQL视频的学习,在安装数据库的时候,出现问题,总显示重启失败 ,无法继续安装,如图所示 出现这种问题 ,应该如何解决呢? 解决方法如下: (1).开始菜单-搜 ...

  5. 【左偏树+延迟标记+拓扑排序】BZOJ4003-城池攻占

    [题目大意] 有n个城市构成一棵树,除1号城市外每个城市均有防御值h和战斗变化参量a和v. 现在有m个骑士各自来刷副本,每个其实有一个战斗力s和起始位置c.如果一个骑士的战斗力s大于当前城市的防御值h ...

  6. JVM堆 栈 方法区详解

    一.栈 每当启用一个线程时,JVM就为他分配一个JAVA栈,栈是以帧为单位保存当前线程的运行状态 栈是由栈帧组成,每当线程调用一个java方法时,JVM就会在该线程对应的栈中压入一个帧 只有在调用一个 ...

  7. Problem D: 调用函数,输出Fibonacci数列的m项至n项

    #include<stdio.h> int fib(int n)//定义FIbonacci函数 { int s,i; ||n==) { s=; } else { int s1,s2; s1 ...

  8. [转]Spring Security 可动态授权RBAC权限模块实践

    RBAC:基于角色的访问控制(Role-Based Access Control) 先在web.xml 中配置一个过滤器(必须在Struts的过滤器之前) <filter> <fil ...

  9. CSS -- 文字竖直居中

    元素的height 和 lineheight 设置为一样即可.

  10. ylbtech-LanguageSamples-Porperties(属性)

    ylbtech-Microsoft-CSharpSamples:ylbtech-LanguageSamples-Porperties(属性) 1.A,示例(Sample) 返回顶部 “属性”示例 本示 ...