file上传代码 ios_iOS实现文件上传功能

本文介绍了iOS中通过NSURLConnection和NSURLSession实现文件上传的方法。主要讲解了POST方式上传的步骤,包括创建请求、设置Content-Type、拼接上传数据等,并提供了相关代码示例。同时也提到了PUT方式上传的优势和使用场景。
摘要由CSDN通过智能技术生成

iOS中用系统提供的API能实现能实现文件的上传与下载,分别有两种方式。NSURLConnection与NSURLSession。

其中NSURLConnection是使用很久的的一种方式,NSURLSession是新出来的一种方式。

一、 POST方式上传

POST方式提交信息默认使用的是 :

*Content-Type:  application/x-www-form-urlencoded.*输入中文时,post方式自动进行转义(苹果中自动).

国内的绝大多数网站都采用这种方式上传文件(支持二进制文件)

*Content-Type:multipart/form-data(上传文件)

*都会限制上传文件的大小一般是2M或者更小。

在苹果中进行上传操作十分麻烦。需要拼接好上传所需要的字符串格式,然后才能实现上传。(还要加上头部)

其他平台做的好一点的可能封装好了,不需要自己拼接字符串格式。因此iOS中很少用这种方式上传。

示例代码:

#import "XNUploadFile.h"

#define kTimeOut 5.0f

@implementation XNUploadFile

/** 分隔字符串 */

static NSString *boundaryStr = @"--";

/** 本次上传标示字符串 */

static NSString *randomIDStr;

/** 上传(php)脚本中,接收文件字段 */

static NSString *uploadID;

- (instancetype)init

{

self = [super init];

if (self) {

/** 本次上传标示字符串 */

randomIDStr = @"itcastupload";

/** 上传(php)脚本中,接收文件字段 */

// 可以咨询公司的网站开发程序员

// 或者用FireBug自己跟踪调试

uploadID = @"uploadFile";

}

return self;

}

#pragma mark - 成员方法. 用NSURLSession来完成上传

- (void)uploadFile:(NSString *)path fileName:(NSString *)fileName completion:(void (^)(NSString *string))completion

{

// 1. url 提示:真正负责文件上传的是php文件,而不是html文件

NSURL *url = [NSURL URLWithString:@"http://localhost/new/post/upload.php"];

// 2. request

NSURLRequest *request = [self requestForUploadURL:url uploadFileName:file

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值