关于AFNetWoring上传文件
来源:互联网 发布:你瞒我瞒网络歌手 编辑:程序博客网 时间:2024/05/18 03:13
最近做项目,要上传文件,不要转Data转Base64然后上传,要直接上传文件,百度了一个Demo,已经验证过了,挺好用的。
原文地址:http://blog.sina.com.cn/s/blog_4cd8dd130101qjf1.html
一: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 constructingBodyWithBloc k:^(id 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
1 #pragma mark 文件上传; 2 3 //文件的 mine_type http://www.iana.org/assignments/media-types/media-types.xhtml 4 5 UIProgressView *uploadFileProgressView = [[UIProgressView alloc]initWithProgressViewStyle:UIProgressViewStyleDefau 6 uploadFileProgressView.center = CGPointMake(self.view.center.x, 100); 7 uploadFileProgressView.progress = 0; 8 uploadFileProgressView.progressTintColor = [UIColor blueColor]; 9 uploadFileProgressView.trackTintColor = [UIColor grayColor];10 [self.view addSubview:uploadFileProgressView];11 12 13 //开始14 UIButton *startUp = [UIButton buttonWithType:UIButtonTypeRoundedRect];15 startUp.frame = CGRectMake(80, 120, 150, 30);16 [startUp setTitle:@"开始上传" forState:UIControlStateNormal];17 [startUp addTarget:self action:@selector(startUploadOP) forControlEvents:UIControlEventTouchUpInslt]; ide]; 18 19 20 [self.view addSubview:startUp];21 22 23 //配置文件上传24 25 //图片data 上传26 //UIImage *upImage = [UIImage imageNamed:@"testImage.png"];27 //NSData *imageData = UIImagePNGRepresentation(upImage); 28 29 //文件file上传,上传mp3音乐文件 30 //NSString *theUpFilePath = [NSString stringWithFormat:@"%@testMusic.mp3",NSTemporaryDirectory()];31 32 //上传个图片文件;33 NSString *theImagePath = [[NSBundle mainBundle] pathForResource:@"testImage" ofType:@"png"];34 35 self.uploadFileClient = [AFHTTPClient clientWithBaseURL:[NSURL URLWithString:kCOCOA_FileUPload]];36 NSMutableURLRequest *fileUpRequest = [_uploadFileClient multipartFormRequestWithMethod:@"POST" path:@"" parameters:nil constructingBodyWithBloc k:^(id formData) {37 38 //[formData appendPartWithFileData:imageData name:@"file" fileName:@"testImage" mimeType:@"image/png"];39 40 //[formData appendPartWithFileURL:[NSURL fileURLWithPath:theUpFilePath isDirectory:NO] name:@"file" fileName:@"testMusic.mp3" mimeType:@"audio/mpeg3" error:nil];41 42 [formData appendPartWithFileURL:[NSURL fileURLWithPath:theImagePath] name:@"file" error:nil];43 44 }];45 46 self.fileUploadOp = [[AFHTTPRequestOperation alloc]initWithRequest:fileUpRequest];47 48 [_fileUploadOp setUploadProgressBlock:^(NSUInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrit e) { 49 startUp.enabled = NO;50 [startUp setTitle:@"正在上传" forState:UIControlStateNormal];51 CGFloat progress = ((float)totalBytesWritten) / totalBytesExpectedToWrite; 52 [uploadFileProgressView setProgress:progress animated:YES];53 54 }];55 56 [_fileUploadOp setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {57 startUp.enabled = NO;58 [startUp setTitle:@"完成" forState:UIControlStateNormal];59 NSLog(@"upload finish ---%@",[[NSString alloc]initWithData:responseObject encoding:NSUTF8StringEncoding]);60 61 } failure:^(AFHTTPRequestOperation *operation, NSError *error) {62 NSLog(@"error %@",error);63 }];64 65 66 67 68 69 70 71 }72 73 #pragma mark AFNetworking 文件上传74 75 - (void)startUploadOP76 {77 [_fileUploadOp start];78 }
1 0
- 关于AFNetWoring上传文件
- iOS AFNetWoring单张上传图片
- ios AfNetWoring 上传多张图片
- afnetworing 上传json 格式的数据
- 关于AFNetworing在使用过程中的优点和小瑕疵
- 关于文件的上传
- 关于php文件上传
- 关于多文件上传
- 关于文件上传
- 关于文件的上传
- 关于httpClient上传文件
- 关于文件异步上传
- 关于springMvc文件上传
- 关于JAVAWeb文件上传
- 关于springMvc文件上传
- 关于文件上传
- AFNetworing 2.0
- 关于文件的上传问题!
- C#串口通讯出现在 System.IO.IOException 中第一次偶然出现的“System.dll”类型的异常的解决办法
- leetcode:Reverse Integer
- zuiqingchun4
- Firefox安装Adobe Flash Player
- 给Word 2007 文档加密
- 关于AFNetWoring上传文件
- R与数据分析学习总结之一:R语言基本操作
- Mysql Trigger (可以用作提权)
- JSP命题人错误盘点(持续更新)
- jQuery学习之文档(DOM)操作
- leetcode 字符串交织
- HDU5112 A Curious Matt
- 杭电OJ(HDOJ)1005题:Number Sequence(规律递推)
- 分享一款Metro风格的WPFUI