您的位置:首页 > 移动开发 > IOS开发

iOS中POST上传文件的实现

2016-02-22 10:42 351 查看
重点:1.单个文件上传(四个步骤) 2.设置请求体格式

{

   
为什么要上传文件:

    

    -
以前很多服务器对上传文件的大小有限制,PHP 限制是 2M

    -
目前很多服务器不仅不限制大小,而且鼓励上传多个文件!

    -
云服务器的普及!

    -
软件商希望获得更多的用户数据!

    

    提示:abc
的目录是用来保存上传文件的,需要设置访问权限!

    

   
<1> 文件上传使用 POST 方法.

    

    //
请求为可变请求

   
NSMutableURLRequest *request = [NSMutableURLRequest
requestWithURL:url];

    // 制定请求方法为
POST

   
request.HTTPMethod = @"POST";

    

   
<2> 设置请求头,告诉服务器请求体中的内容包含文件参数.

    [request
setValue:@"multipart/form-data; boundary=kBoundary"
forHTTPHeaderField:@"Content-Type"];

    

   
<3> 设置请求体(注意:必须严格按照格式设置).

    {

       
// 上边界

       
--boundary\r\n

       
Content-Disposition: form-data; name=userfile;
filename=555\r\n

       
Content-Type: application/json\r\n\r\n

      
 

      
 

       
文件内容的二进制数据

      
 

       
// 下边界

       
\r\n--boundary--

      
 

      
 

       
注意1:请求体内容分为三个部分:

      
 

       
*
上边界部分,告诉服务器要做数据上传,包含了服务器的接收字段name=userfile,文件在服务器中保存的名称filename=555,以及上传文件的数据类型
application/json(需要严格按照字符串格式来设置)

      
 

       
* 上传文件的数据部分(二进制数据)

      
 

       
* 下边界部分,严格按照字符串格式来设置.

      
 

       
上边界部分和下边界部分的字符串,最后都要转换成二进制数据,和文件部分的二进制数据拼接在一起,作为请求体发送给服务器.

      
 

      
 

       
注意2:

    

       
* userfile => 负责上传文件脚本中的 字段名,开发的时候,可以咨询后端程序员

       
* filename => 将文件保存在服务器上的文件名称

      
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: