一:AFNetworking的文件上传:

主要几个以下类似

- (BOOL)appendPartWithFileURL:(NSURL *)fileURL
name:(NSString *)name
error:(NSError * __autoreleasing *)error;

二:主要代码:

    //配置文件上传

    //图片data 上传
//UIImage *upImage = [UIImage imageNamed:@"testImage.png"];
//NSData *imageData = UIImagePNGRepresentation(upImage); //文件file上传,上传mp3音乐文件
//NSString *theUpFilePath = [NSString stringWithFormat:@"%@testMusic.mp3",NSTemporaryDirectory()]; //上传个图片文件;
NSString *theImagePath = [[NSBundle mainBundle] pathForResource:@"testImage" ofType:@"png"]; self.uploadFileClient = [AFHTTPClient clientWithBaseURL:[NSURL URLWithString:kCOCOA_FileUPload]];
NSMutableURLRequest *fileUpRequest = [_uploadFileClient multipartFormRequestWithMethod:@"POST" path:@"" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { //[formData appendPartWithFileData:imageData name:@"file" fileName:@"testImage" mimeType:@"image/png"]; //[formData appendPartWithFileURL:[NSURL fileURLWithPath:theUpFilePath isDirectory:NO] name:@"file" fileName:@"testMusic.mp3" mimeType:@"audio/mpeg3" error:nil]; [formData appendPartWithFileURL:[NSURL fileURLWithPath:theImagePath] name:@"file" error:nil]; }]; self.fileUploadOp = [[AFHTTPRequestOperation alloc]initWithRequest:fileUpRequest];

三:文件上传Demo

 #pragma mark 文件上传;

     //文件的 mine_type http://www.iana.org/assignments/media-types/media-types.xhtml

     UIProgressView *uploadFileProgressView = [[UIProgressView alloc]initWithProgressViewStyle:UIProgressViewStyleDefault];
uploadFileProgressView.center = CGPointMake(self.view.center.x, );
uploadFileProgressView.progress = ;
uploadFileProgressView.progressTintColor = [UIColor blueColor];
uploadFileProgressView.trackTintColor = [UIColor grayColor];
[self.view addSubview:uploadFileProgressView]; //开始
UIButton *startUp = [UIButton buttonWithType:UIButtonTypeRoundedRect];
startUp.frame = CGRectMake(, , , );
[startUp setTitle:@"开始上传" forState:UIControlStateNormal];
[startUp addTarget:self action:@selector(startUploadOP) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:startUp]; //配置文件上传 //图片data 上传
//UIImage *upImage = [UIImage imageNamed:@"testImage.png"];
//NSData *imageData = UIImagePNGRepresentation(upImage); //文件file上传,上传mp3音乐文件
//NSString *theUpFilePath = [NSString stringWithFormat:@"%@testMusic.mp3",NSTemporaryDirectory()]; //上传个图片文件;
NSString *theImagePath = [[NSBundle mainBundle] pathForResource:@"testImage" ofType:@"png"]; self.uploadFileClient = [AFHTTPClient clientWithBaseURL:[NSURL URLWithString:kCOCOA_FileUPload]];
NSMutableURLRequest *fileUpRequest = [_uploadFileClient multipartFormRequestWithMethod:@"POST" path:@"" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { //[formData appendPartWithFileData:imageData name:@"file" fileName:@"testImage" mimeType:@"image/png"]; //[formData appendPartWithFileURL:[NSURL fileURLWithPath:theUpFilePath isDirectory:NO] name:@"file" fileName:@"testMusic.mp3" mimeType:@"audio/mpeg3" error:nil]; [formData appendPartWithFileURL:[NSURL fileURLWithPath:theImagePath] name:@"file" error:nil]; }]; self.fileUploadOp = [[AFHTTPRequestOperation alloc]initWithRequest:fileUpRequest]; [_fileUploadOp setUploadProgressBlock:^(NSUInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite) {
startUp.enabled = NO;
[startUp setTitle:@"正在上传" forState:UIControlStateNormal];
CGFloat progress = ((float)totalBytesWritten) / totalBytesExpectedToWrite;
[uploadFileProgressView setProgress:progress animated:YES]; }]; [_fileUploadOp setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
startUp.enabled = NO;
[startUp setTitle:@"完成" forState:UIControlStateNormal];
NSLog(@"upload finish ---%@",[[NSString alloc]initWithData:responseObject encoding:NSUTF8StringEncoding]); } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"error %@",error);
}]; } #pragma mark AFNetworking 文件上传 - (void)startUploadOP
{
[_fileUploadOp start];
}

四:关于文件上传服务器,建议使用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. PHP实现选择排序

    选择排序: 选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理如下.首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小( ...

  2. 2010-2011 ACM-ICPC, NEERC, Southern Subregional Contest C Explode 'Em All

    暴力枚举,状态压缩. 枚举哪几行放,复杂度为$O(2^{25})$,大概有$3000$多万种情况.假设有$x$行放了,没放的那几行状态或起来为$st$,如果$st$中$1$的个数大于$x$,那么不可取 ...

  3. 携带结果的任务 Callable 与 Future

    Executor框架使用Runnable作为其基本任务表示形式.Runnable是一种有很大局限的抽象,它不能返回一个值或者抛出一个受检查的异常. 但是许多任务实际上都是存在延迟的计算,比如执行数据库 ...

  4. HDU 6070 Dirt Ratio(线段树)

    Dirt Ratio Time Limit: 18000/9000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/Others)Tot ...

  5. B/S架构和C/S架构

    一.B/S架构 B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件.这种模式统一了客户端,将系统功能实现的核心部分集 ...

  6. ABP+NetCore+Vue.js实现增删改查

    ABP我就不多介绍了,不知道的可以自己百度 本篇开发工具VS2017,数据库SQL SERVER2012,系统Win7 1.去ABP官网下载对应的模板,下载地址:https://aspnetboile ...

  7. BestCoder Round #65 (ZYB's Biology)

    ZYB's Biology Accepts: 848 Submissions: 1199 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 13 ...

  8. 安卓 内存 泄漏 工具 LeakCanary 使用

    韩梦飞沙 yue31313 韩亚飞 han_meng_fei_sha 313134555@qq.com LeakCanary是Square开源了一个内存泄露自动探测神器 .这是项目的github仓库地 ...

  9. UVA 12338:Anti-Rhyme Pairs(后缀数组+ST表)

    [题目链接] click [题目大意] 给出一些字符串,询问查询任意两个字符串的最长公共前缀 [题解] 将字符串拼接,对拼接的字符串做后缀数组,对于查询的两个字符串, 只要在height数组上查询区间 ...

  10. Java编程思想学习(四)----第四章:控制执行流程

    在Java中,涉及的关键字包括if-else.while.do-while.for.return.break 以及选择语句switch.然而,Java并不支持goto语句(该语句引起许多反对意见,但它 ...