AFNet3.0上传图片

很多iOS应用都会遇到需要上传图片的情况,比如修改个人资料时需要上传自己的头像,最近我也遇到了这种情况,首先参考之前写过的AFNetWorking3.0处理请求头和请求内容

我们在上述博客的基础之上进行修改,假设我们正在修改个人资料,里面需要修改个人头像和其他资料,用请求头进行用户识别,请求内容包括其他的个人资料。

首先是请求的URL,

NSString *url = @"your url";

接下来定义AFHTTPSessionManager,

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

设置相关的请求头,通过requestSerializer来实现,可以根据自己的需求定义一个或者多个请求头,

[manager.requestSerializer @"value1" forHTTPHeaderField:@"key1"];
[manager.requestSerializer @"value2" forHTTPHeaderField:@"key2"];
......

实现带请求内容的POST方法,这里一些文本性质的个人资料可以直接在parameters中进行设置,但是图片需要另外处理,先将UIImage对象转化成NSData对象,

NSData *imgData = UIImagePNGRepresentation(UIImage对象);

最后将图片作为请求的内容进行上传,

[manager POST:url
       parameters:@{
                    @"key1":@"value1",
                    @"key2":@"value2"
                    ......
                    }
constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
    [formData appendPartWithFileData:imgData name:@"key3" fileName:@"avatar.png" mimeType:@"image/png"];
}
        progress:nil
         success:^(NSURLSessionTask *task, id responseObject) {
             NSLog("response:%@", responseObject);
             }
         }
         failure:^(NSURLSessionTask *task, NSError *error) {
             NSLog(@"error:%@", error);
         }];

通过以上过程就实现了利用AFNetWorking 3.0上传图片的过程,上传其他文件类型同理。

时间: 2024-10-09 13:09:13

AFNet3.0上传图片的相关文章

关于Asp.Net Mvc3.0 使用KindEditor4.0 上传图片与文件

http://blog.csdn.net/fyxq14hao/article/details/7245502 今天我们的Asp.Net Mvc 3的项目中,把KindEditor3.9改为 KindEditor4.0 .修改了js文件的引用后,发现还是无法上传图片,最后发现时图片上传中的参数名修改了  从imageUploadJson 改为了uploadJson. <script type="text/javascript">var editor;var options =

Servlet3.0上传图片示例

一.前端JSP页面 <%@page pageEncoding="UTF-8"%><!DOCTYPE html><html><head><meta charset="UTF-8"><title>Servlet3.0实现文件上传</title></head><body> <h1>Servlet3.0实现文件上传</h1> <b id=

yii2.0上传图片

model: use Yii; /** * 获取头像url地址 * @return 头像的url地址 */public function getPortraitUrl(){ return self::getAvatarUrlById($this->id);} /** * 获取头像存放路径 * @return 头像的存放路径 */public static function getAvatarPathById($companyId){ $string = str_pad($companyId, 6

aspx页面中用Input 标签实现上传图片功能

实现上传图片功能需单独的建立一个aspx页面, 其中前台页面需要注意两点: a)实现上传功能的input的type="file" b)设置请求报文头为 enctype="multipart/form-data" 类型 前台代码如下: <form method="post" enctype="multipart/form-data"> <table class="list"> <

form提交表单上传图片

上传图片后将图片显示在当前页面上,本打算用ajax,但是上传图片必须设置 enctype="multipart/form-data",而要提交之后页面不跳转,所以查资料后采用form+iframe的方式.空的iframe并且不显示,将form的target设置为iframe,就会提交到iframe上,从而实现不刷新页面上传. <form name="uploadForm" id="uploadForm" method="post&

js实现无刷新上传

在新增数据项的时候,用ajax实现无刷新提交,但上传文件的时候,由于数据类型原因,不能将页面的<asp:FileUpload>中以字符串值的方式传到js里调用.我一共找到了两个方法予以解决,实现无刷新上传. 第一种方法:利用js的ADODB.Stream,将文件先转换成流,再通过js上传到服务器,这样有个好处就是可以上传超大文件,并且由于是数据流,可以支持断点续传.方便显示上传进度等人性化功能.唯一的缺点是要客户端浏览器需要设置安全级别,或者安装相关ActiveX控件(这个控件自己做的,加载到

数据库字典

pre_common_admincp_cmenu后台菜单收藏表 字段 类型 空 默认 注释 id smallint(6) 否   编号 title varchar(255) 否   菜单名称 url varchar(255) 否   菜单地址 sort tinyint(1) 否 0 菜单类型,备用 displayorder tinyint(3) 否   显示顺序 clicks smallint(6) 否 1 点击数,备用 uid mediumint(8) 否   添加用户 dateline in

easy ui 异步上传文件,跨域

easy ui 跨域上传文件,代码如下: 1.html代码:(这段代码是个win窗体,我在点击上传图片按钮然后弹出一个上传图片的窗体,选择图片再进行上传,这样在form提交时,提交的参数会少一点.) 说明:跨域上传文件时: a.新加irame <iframe name="upload" style="display:none"></iframe> b. <form id="form_upload_pic" metho

iOS开发中常见问题集锦

在iOS开发中,会出现各种各样的问题.今天,就把这些常见的问题以及各位大牛的解决方案汇总下,方便以后查阅: 常见错误: 1. linker command failed with exit code 1 (use -v to see): http://www.reader8.cn/jiaocheng/20131022/2003334.html 2.开发问题 http://blog.sina.com.cn/s/blog_4cd8dd130102uzgp.html http://www.jiansh