POST方式上传文件
来源:互联网 发布:linux 用户权限 编辑:程序博客网 时间:2024/05/16 00:38
#import "NSMutableURLRequest+Multipart.h"/**随便的字符串作为分隔符*/static NSString *boundary = @"itcastupload";@implementation NSMutableURLRequest (Multipart)+ (instancetype)requestWithURL:(NSURL *)url andLoaclFilePath:(NSString *)loaclFilePath andFileName:(NSString *)fileName{ // 2. post请求 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:1 timeoutInterval:2.0f]; // 2.1 指定post方法 request.HTTPMethod = @"POST"; // 2.2 拼接数据体 NSMutableData *dataM = [NSMutableData data]; // 1. \r\n--(可以随便写, 但是不能有中文)\r\n NSString *str = [NSString stringWithFormat:@"\r\n--%@\r\n", boundary]; [dataM appendData:[str dataUsingEncoding:NSUTF8StringEncoding]]; // 2. Content-Disposition: form-data; name="userfile(php脚本中用来读取文件的字段)"; filename="demo.json(要保存到服务器的文件名)" str = [NSString stringWithFormat:@"Content-Disposition: form-data; name=\"userfile\"; filename=\"%@\" \r\n", fileName]; [dataM appendData:[str dataUsingEncoding:NSUTF8StringEncoding]]; // 3. Content-Type: application/octet-stream(上传文件的类型)\r\n\r\n str = @"Content-Type: application/octet-stream\r\n\r\n"; [dataM appendData:[str dataUsingEncoding:NSUTF8StringEncoding]]; // 4. 要上传的文件的二进制流 // 要上传图片的二进制 [dataM appendData:[NSData dataWithContentsOfFile:loaclFilePath]]; // 5. \r\n--(可以随便写, 但是不能有中文)--\r\n str = [NSString stringWithFormat:@"\r\n--%@--\r\n", boundary]; [dataM appendData:[str dataUsingEncoding:NSUTF8StringEncoding]]; // 2.4 设置请求体 request.HTTPBody = dataM; // 设置请求头 // Content-Length(文件的大小)290 // Content-Typemultipart/form-data; boundary(分隔符)=(可以随便写, 但是不能有中文) NSString *headerStr = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary]; [request setValue:headerStr forHTTPHeaderField:@"Content-Type"]; return request;}@end
0 0
- POST方式上传文件
- jersey post方式上传文件
- IOS post方式上传文件
- Python -- post方式上传文件
- http post方式上传文件
- android 使用post方式上传文件
- Python中使用POST方式上传文件
- ASP.NET 利用post方式上传文件
- Python中使用POST方式上传文件
- POST方式跨域上传文件
- (三)glassfish的post方式上传文件
- Python中使用POST方式上传文件
- android 使用post方式上传文件
- POST方式跨域上传文件
- android 使用post方式上传文件
- [绍棠] iOS post方式上传文件
- Java的Post方式上传文件
- 求教:Retrofit方式文件上传。@Multipart @Post
- IntelliJ Idea 常用快捷键列表
- 使用AsyncHttpClient碰到的问题及解决方法
- CodeForces 589G Hiring(树状数组)
- mysql事务回滚的问题
- 如何定制支持用户自定义boot参数的基于debian os的live cd
- POST方式上传文件
- 前端开发中的性能那点事(一)巧用xdebug
- Nginx下载和编译安装
- JS保留两位小数
- html5+javascript+css3实现下拉列表以及折叠功能
- Xrebel监控调优你的程序
- linux 内存管理相关
- 有关Linux内核态以及用户级进程、内核级进程的学习笔记
- SharePoint 2013 IT Professional--如何配置Access Request Setting