iOS图片压缩上传
本文实例为大家分享了iOS实现压缩图片上传功能,供大家参考,具体内容如下
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
|
#pragma mark - 打开相机-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info{ UIImage *image = info[UIImagePickerControllerOriginalImage]; self.currentTapCell.photoManageImgView.image = image; NSIndexPath * indexPath = [self.baseTable indexPathForCell:self.currentTapCell]; NSString * key = [NSString stringWithFormat:@"ineed%u%u", indexPath.row, indexPath.section]; [[NetEngineHelper shareNetEngine] postUploadWithUrl:k_uploadPhoto_url image:image fileName:[NSString stringWithFormat:@"%@.png", key] fileType:@"PNG/JPEG/JPG" success:^(id response) { if ([response[@"STATUS"] intValue] != 0) { NSString * str = @""; if (response[@"ERRORDESC"]) { str = response[@"ERRORDESC"]; }else{ str = @"系统异常"; } [AlertHelper shareAlertHelper].onVC = self; [AlertHelper shareAlertHelper].alertTitle = str; [AlertHelper shareAlertHelper].alertMessage = nil; [[AlertHelper shareAlertHelper] alertVcWithSureAction:^(id response) { }]; }else{ [AlertHelper shareAlertHelper].onVC = self; [AlertHelper shareAlertHelper].alertTitle = @"上传成功"; [AlertHelper shareAlertHelper].alertMessage = nil; [[AlertHelper shareAlertHelper] alertVcWithSureAction:^(id response) { }]; if ([self.currentTapCell.photoDescribeLable.text isEqualToString:@"上传诊断证明"]) { [self.successUploadDic setValue:response[@"FILEID"] forKey:@"PROVEID"]; } if ([self.currentTapCell.photoDescribeLable.text isEqualToString:@"上传病历首页"]){ [self.successUploadDic setValue:response[@"FILEID"] forKey:@"CASEHOMEID"]; } NSLog(@"上传结果 %@", response); } } fail:^(NSError *error) { [AlertHelper shareAlertHelper].onVC = self; [AlertHelper shareAlertHelper].alertTitle = error.userInfo[@"NSLocalizedDescription"]; [AlertHelper shareAlertHelper].alertMessage = nil; [[AlertHelper shareAlertHelper] alertVcWithSureAction:^(id response) { }]; }]; [self dismissViewControllerAnimated:YES completion:^{ }];} #pragma mark - 打开相机-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info{ UIImage *image = info[UIImagePickerControllerOriginalImage]; self.currentTapCell.photoManageImgView.image = image; NSIndexPath * indexPath = [self.baseTable indexPathForCell:self.currentTapCell]; NSString * key = [NSString stringWithFormat:@"ineed%u%u", indexPath.row, indexPath.section]; [[NetEngineHelper shareNetEngine] postUploadWithUrl:k_uploadPhoto_url image:image fileName:[NSString stringWithFormat:@"%@.png", key] fileType:@"PNG/JPEG/JPG" success:^(id response) { if ([response[@"STATUS"] intValue] != 0) { NSString * str = @""; if (response[@"ERRORDESC"]) { str = response[@"ERRORDESC"]; }else{ str = @"系统异常"; } [AlertHelper shareAlertHelper].onVC = self; [AlertHelper shareAlertHelper].alertTitle = str; [AlertHelper shareAlertHelper].alertMessage = nil; [[AlertHelper shareAlertHelper] alertVcWithSureAction:^(id response) { }]; }else{ [AlertHelper shareAlertHelper].onVC = self; [AlertHelper shareAlertHelper].alertTitle = @"上传成功"; [AlertHelper shareAlertHelper].alertMessage = nil; [[AlertHelper shareAlertHelper] alertVcWithSureAction:^(id response) { }]; if ([self.currentTapCell.photoDescribeLable.text isEqualToString:@"上传诊断证明"]) { [self.successUploadDic setValue:response[@"FILEID"] forKey:@"PROVEID"]; } if ([self.currentTapCell.photoDescribeLable.text isEqualToString:@"上传病历首页"]){ [self.successUploadDic setValue:response[@"FILEID"] forKey:@"CASEHOMEID"]; } NSLog(@"上传结果 %@", response); } } fail:^(NSError *error) { [AlertHelper shareAlertHelper].onVC = self; [AlertHelper shareAlertHelper].alertTitle = error.userInfo[@"NSLocalizedDescription"]; [AlertHelper shareAlertHelper].alertMessage = nil; [[AlertHelper shareAlertHelper] alertVcWithSureAction:^(id response) { }]; }]; [self dismissViewControllerAnimated:YES completion:^{ }];} /**上传文件*/-(void)postUploadWithUrl:(NSString *)urlStr image:(UIImage *)image fileName:(NSString *)fileName fileType:(NSString *)fileTye success:(Success)success fail:(Faile)fail{ NSString * resultStr = [urlStr stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]]; self.success = success; self.failer = fail; AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; manager.responseSerializer = [AFHTTPResponseSerializer serializer]; manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/html",@"application/json",@"text/plain" ,nil]; [manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; manager.responseSerializer=[AFJSONResponseSerializer serializer]; manager.requestSerializer = [AFHTTPRequestSerializer serializer]; [manager.securityPolicy setAllowInvalidCertificates:YES]; UIApplication *application = [UIApplication sharedApplication]; application.networkActivityIndicatorVisible = YES; [manager POST:resultStr parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { NSData * imgData = UIImageJPEGRepresentation(image, 0.02); [formData appendPartWithFileData:imgData name:@"FILENAME" fileName:fileName mimeType:fileTye]; } success:^(AFHTTPRequestOperation *operation, id responseObject) { success(responseObject); application.networkActivityIndicatorVisible = NO; } failure:^(AFHTTPRequestOperation *operation, NSError *error) { fail(error); application.networkActivityIndicatorVisible = NO; }];}
|
iOS图片压缩上传的更多相关文章
- 三款不错的图片压缩上传插件(webuploader+localResizeIMG4+LUploader)
涉及到网页图片的交互,少不了图片的压缩上传,相关的插件有很多,相信大家都有用过,这里我就推荐三款,至于好处就仁者见仁喽: 1.名气最高的WebUploader,由Baidu FEX 团队开发,以H5为 ...
- Html5+asp.net mvc 图片压缩上传
在做图片上传时,大图片如果没有压缩直接上传时间会非常长,因为有的图片太大,传到服务器上再压缩太慢了,而且损耗流量. 思路是将图片抽样显示在canvas上,然后用通过canvas.toDataURL方法 ...
- 基于vue + axios + lrz.js 微信端图片压缩上传
业务场景 微信端项目是基于Vux + Axios构建的,关于图片上传的业务场景有以下几点需求: 1.单张图片上传(如个人头像,实名认证等业务) 2.多张图片上传(如某类工单记录) 3.上传图片时期望能 ...
- 分享图片压缩上传demo,可以选择一张或多张图片也可以拍摄照片
2016-08-05更新: 下方的代码是比较OLD的了,是通过js进行图片的剪切 旋转 再生成,效率较低. 后来又整合了一个利用native.js本地接口的压缩代码 ,链接在这 .页面中有详细的说明, ...
- js 图片压缩上传(base64位)以及上传类型分类
一.input file上传类型 1.指明只需要图片 <input type="file" accept='image/*'> 2.指明需要多张图片 <input ...
- 纯原生js移动端图片压缩上传插件
前段时间,同事又来咨询一个问题了,说手机端动不动拍照就好几M高清大图,上传服务器太慢,问问我有没有可以压缩图片并上传的js插件,当然手头上没有,别慌,我去网上搜一搜. 结果呢,呵呵...诶~又全是基于 ...
- springMVC多图片压缩上传的实现
首先需要在配置文件中添加配置: <!--配置文件的视图解析器,用于文件上传,其中ID是固定的:multipartResolver--> <bean id="multipar ...
- 基于H5+ API手机相册图片压缩上传
// 母函数 function App(){} /** * 图片压缩,默认同比例压缩 * @param {Object} path * pc端传入的路径可以为相对路径,但是在移动端上必须传入的路径是照 ...
- HTML多图片压缩上传
本文介绍的是多张图片在前端统一压缩后再通过ajax提交给后台处理的业务,使用到的是LocalResizeIMG.js插件. 一.首先介绍项目结构 二.分享引用核心文件,这里没有分享CSS文件,因为没有 ...
随机推荐
- iOS: FFmpeg的使用二
1.下载并编译FFMPEG. https://github.com/kewlbear/FFmpeg-iOS-build-script 下载后有一个build-ffmpeg.sh文件.终端执行即可自动下 ...
- 使用PowerDesigner建立数据库模型【转】
1. 打开PowerDesigner,点击File->New 2. 选择Conceptual Data Model,并修改Model name. 3. 在Palette工具栏中点击Entity ...
- json 数组操作
用js有很久了,但都没有深究过js的数组形式.这段时间做的一个项目,用到数组的地方很多,自以为js还可以的自己居然无从下手,一下狠心,我学!呵呵. 1.数组的创建 var arrayObj = new ...
- Linux下性能监控的三把军刀
Linux主机怎么管,十八般兵器件件都可以算得上是瑞士军刀,称手的兵器一两件即可,最常用的,莫过于stat家族三兄弟吧. 计算机主要资源是什么?CPU.内存和磁盘?尽管现在云计算技术有多普及,查看一个 ...
- linux查看CPU性能及工作状态的指令mpstat,vmstat,iostat,sar,top
转载:http://www.cnblogs.com/xianghang123/archive/2011/08/25/2153591.html 衡量CPU性能的指标: 1,用户使用CPU的情况:CPU运 ...
- sysstat 工具
转:http://www.ctohome.com/FuWuQi/1b/688.html sysstat 工具简介 sysstat 是 Linux 系统中的常用工具包.它的主要用途是观察服务负载,比如C ...
- Java内存溢出的详细解决方案(转http://developer.51cto.com/art/200906/129346.htm)
一.内存溢出类型 1.java.lang.OutOfMemoryError: PermGen space JVM管理两种类型的内存,堆和非堆.堆是给开发人员用的上面说的就是,是在JVM启动时创建:非堆 ...
- redhat下安装mysql 5.6.20,解压zip包,查看已经安装过的mysql,卸载rpm安装包,安装mysqlserver端和client,改动mysqlusername,登陆mysql,启动关闭mysql
1 将相关的mysql rpm包上传到redhat上 2 我的电脑是Redhat 6.*版本号.所以这里使用上面一个 3 解压zip包 4 安装下面几个rpm MySQL-client-a ...
- Discuz常见小问题-如何设置QQ邮箱注册验证
开启POP3/SMTP服务器,需要发送短信,然后点击我已发送,得到一个指定的密码 开启之后得到的授权码 开启IMAP/SMTP还需要发送一次短信,得到一个另外的授权码 然后在后台设置为下面 ...
- T-SQL 之 公用表表达式(CTE)
在编写T-SQL代码时,往往需要临时存储某些结果集.在CTE之前常用的两种临时存储结果集为:临时表和表变量.除此之外,还可以使用公用表表达式的方法. 公用表表达式(Common Table Expre ...