iOS开发(OC)——AFNetworking之文件上传
2016-05-22 12:40
330 查看
//urlString服务器地址
//param 字典类型,后面跟你要传的参数及其值
例如:NSDictionary *param = @{@”time”:dateString,@”token”:tokenString,@”userid”:[userDefault objectForKey:userid],@”finger_type”:[NSString stringWithFormat:@”%d”,(int)selectButton.tag-10+1],@”audio”:fileData};
//下面的方法中如果需要回调的就自己写block吧,我怕我写了有些人看不懂
+(void)postAudioWithUrl:(NSString )urlString andParam:(NSDictionary )param keyName:(NSString )key fileName:(NSString )file data:(NSData *)fileData
{
NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@”POST” URLString:urlString parameters:param constructingBodyWithBlock:^(id formData) {
//fileData二进制流,例如NSData *fileData=[NSData dataWithContentsOfFile:filePath];//filePath你的文件路径
//key服务器地址url上二进制流的关键字字段
//file,自定义的文件名
//@”application/octet-stream”文件的类型,当你不知道时就默认用这个
[formData appendPartWithFileData:fileData name:key fileName:file mimeType:@”application/octet-stream”];
}
iOS开发交流群:301058503
//param 字典类型,后面跟你要传的参数及其值
例如:NSDictionary *param = @{@”time”:dateString,@”token”:tokenString,@”userid”:[userDefault objectForKey:userid],@”finger_type”:[NSString stringWithFormat:@”%d”,(int)selectButton.tag-10+1],@”audio”:fileData};
//下面的方法中如果需要回调的就自己写block吧,我怕我写了有些人看不懂
+(void)postAudioWithUrl:(NSString )urlString andParam:(NSDictionary )param keyName:(NSString )key fileName:(NSString )file data:(NSData *)fileData
{
NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@”POST” URLString:urlString parameters:param constructingBodyWithBlock:^(id formData) {
//fileData二进制流,例如NSData *fileData=[NSData dataWithContentsOfFile:filePath];//filePath你的文件路径
//key服务器地址url上二进制流的关键字字段
//file,自定义的文件名
//@”application/octet-stream”文件的类型,当你不知道时就默认用这个
[formData appendPartWithFileData:fileData name:key fileName:file mimeType:@”application/octet-stream”];
} error:nil]; AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]]; manager.responseSerializer = [AFHTTPResponseSerializer serializer]; NSURLSessionUploadTask *uploadTask = [manager uploadTaskWithStreamedRequest:request progress:^(NSProgress * _Nonnull downloadProgress) { //进度条 CGFloat progress=(CGFloat)downloadProgress.completedUnitCount/(CGFloat)downloadProgress.totalUnitCount;//运算符/,当两边都是整型时,得出的结果也是整型,所以要进行类型转换 } completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) { //失败 if (error) { NSDictionary *info = [NSDictionary dictionaryWithObjectsAndKeys:error.debugDescription,@"info", nil]; } else {//成功 NSDictionary *dict=[NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableLeaves error:nil]; } }]; [uploadTask resume];//注意不要漏
}
iOS开发交流群:301058503
相关文章推荐
- ASP实现文件上传的方法
- php轻松实现文件上传功能
- PHP文件上传问题汇总(文件大小检测、大文件上传处理)
- .net文件上传时实现通过文件头确认文件类型的方法
- asp.net 文件上传与刷新与asp.net页面与iframe之间的数据传输
- ASP的chr(0)文件上传漏洞原理和解决方法介绍
- asp.net上传文件到数据库的解决方案
- javascript实现校验文件上传控件实例
- ajax 异步上传带进度条视频并提取缩略图
- jQuery实现文件上传进度条特效
- JQuery fileupload插件实现文件上传功能
- 分享20多个很棒的jQuery 文件上传插件或教程
- jquery插件ajaxupload实现文件上传操作
- Web Uploader文件上传插件使用详解
- jquery插件uploadify实现带进度条的文件批量上传
- 原生ajax和iframe框架实现图片文件上传的两种方式
- MVC中基于Ajax和HTML5实现文件上传功能
- 基于HTML5 Ajax实现文件上传并显示进度条
- js jquery分别实现动态的文件上传操作按钮的添加和删除
- asp.net HTML文件上传标签