IOS开发-图片上传

目前IOS端开发,图片上传到服务器分为两种,一种是直接上到服务器,一种是借助第三方储存(减少服务器压力)。

一、直接上传到服务器

 1         /**
 2          *  代码演示
 3          */
 4         //*******UIImagePNGRepresentation(UIImage* image) 要比UIImageJPEGRepresentation(UIImage* image, 1.0) 返回的图片数据量大很多,但从视角角度看,图片的质量没有明显的降低,所以在读取图片数据内容时,可以先使用UIImageJPEGRepresentation,且耗时短。
 5         //******将选中的图片压缩成二进制文件*******photo为UIImage实例
 6         NSData *data = UIImageJPEGRepresentation(photo, 0.5);
 7         //****** 从本地上传图片  先读入沙盒目录
 8          //****** 创建沙盒目录
 9         NSString *docomentpaths = [NSHomeDirectory() stringByAppendingPathComponent:@"docomentpaths"];
10         NSFileManager *manager = [NSFileManager defaultManager];
11         [manager createDirectoryAtPath:docomentpaths withIntermediateDirectories:YES attributes:nil error:nil];
12         //*****获取当前时间字符
13         NSString *timeStr = [NSString stringWithFormat:@"%@",[NSDate date]];
14         //*****读入沙盒目录下
15         [manager createFileAtPath:[docomentpaths stringByAppendingString:[NSString stringWithFormat:@"%@",timeStr]] contents:data attributes:nil];
16         //*****得到图片路径
17         NSString *filepath = [[NSString alloc]initWithFormat:@"%@%@",docomentpaths,timeStr];
18          //****** 得到本地的图片URL
19         NSURL *imageurl = [NSURL fileURLWithPath:filepath];
20         
 1  //****url服务器接口地址
 2     //使用AFN网络框架上传
 3     self.manager = [AFHTTPRequestOperationManager manager];
 4     [self.manager POST:url parameters:dic constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {
 5         //         开始上传 formData提交
 6            [formData appendPartWithFileURL:imageurl name:@"ios_uploadImage" fileName:filepath mimeType:@"image/jpeg" error:nil];
 7                  }
 8
 9         //      这里上传多张图片for循环提交
10         //        for (int i = 0; i<self.imagelist.count; i++)
11         //         {
12         //             [formData appendPartWithFileURL:self.iamgedata[i] name:@"heareuy" fileName:self.strlist[i] mimeType:@"image/jpeg" error:nil];
13         //         }
14         //
15
16     } success:^(AFHTTPRequestOperation * _Nonnull operation, id  _Nonnull responseObject) {
17
18     } failure:^(AFHTTPRequestOperation * _Nullable operation, NSError * _Nonnull error) {
19
20     }];

二、上传到第三方服务器存储-七牛云存储

原来公司的项目也是上传到公司服务器上,但想着图片量会很大,随着图片量的增多,后期也是一个问题,所以我决定使用七牛云作为图片存储盘,过程其实是非常简单的。后台的伙伴们会在七牛上注册,实例化一个盘,在手机端上传时,后台会给一个从七牛获取到token。根据这个token手机端会把图片上传到七牛,上传成功后,七牛会返回一个图片的url,然后再将这个url给服务器,说白了,服务器只是保存手机端上传到七牛的地址。

代码演示待续。。。。。。。。。

时间: 2024-10-21 04:38:06

IOS开发-图片上传的相关文章

android/IOS常用图片上传的两种方式

android/IOS常用图片上传的两种方式: 1.上传到服务器的文件服务器(FileServer) 原理:上传到文件服务器的方式是先在服务器端搭建文件服务器,配置好路径(url),该路径是我们待会上传图片的路径,配置成功后便通过http+post的模式上传到文件服务器,同时文件服务器将返回一个图片ID,这个ID就是图片的唯一标识,并将该ID写入数据库保存,当需要下载该图片时只需要将此ID带上即可. 两个核心问题: (1)服务端:配置FileServer,并写处理响应上传图片的代码,这个值得去网

java web开发 图片上传功能

基本思路在于,配置路径,然后用java I/O的api将图片上传到该目录下. String photoPath =    ServletActionContext.getServletContext().getRealPath("/user/photo/" + username); 这句是获取服务器下的目录+username 而username通过session获取. 这是一个图片上传action的方法: public String execute() throws Exception

iOS多图片上传

开始学习Objc20多天了,最近在弄多文件上传,在网上找了些代码,只是单文件的,折腾了两天,终于改成多文件上传的了. xcode 6.1 iOS 8.0测试成功 希望别的人不要像我一样花时间在修改上.时间就是生命啊.. +(NSString *)PostImagesToServer:(NSString *) strUrl dicPostParams:(NSMutableDictionary *)params dicImages:(NSMutableDictionary *) dicImages{

iOS开发-文件上传原理

文件上传 编写文件上传类UploadFile.h // // UploadFile.h // 02.Post上传 // // Created by wyh on 15-1-29. // Copyright (c) 2015年 itcast. All rights reserved. // #import <Foundation/Foundation.h> @interface UploadFile : NSObject - (void)uploadFileWithURL:(NSURL *)ur

iOS 七牛云上传并获取图片----【客户端】

       最近做了七牛云存储的有关内容,涉及到与后台交互获取验证的token,无奈,后台自命清高,不与理会,没办法呀,于是自己搞呗.首先呢在在七牛上注册一个账号,然后呢添加一个存储空间这时候空间名是用来识别存储空间的位置,而地区的选择则是设置存储七牛服务器的位置,那么选择一个公开空间免费试用就可以了~~        创建好账号就是查看官方文档编写demo的流程了,顺便附带一个下载地址:http://developer.qiniu.com/code/v7/sdk/objc.html    下

vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理

一.前言 三年.net开发转前端已经四个月了,前端主要用webpack+vue,由于后端转过来的,前端不够系统,希望分享下开发心得与园友一起学习. 图片的上传之前都是用的插件(ajaxupload),或者传统上传图片的方式,各有利弊:插件的问题是依赖jq并且会使系统比较臃肿,还有传统的web开发模式 前后端偶尔在一起及对用户体验要求低,现在公司采用webpack+vue+restfullApi开发模式 前后端完全分离,遵从高内聚,低偶尔的原则,开发人员各司其职,一则提升开发效率(从长期来看,短期

[iOS AFNetworking框架实现HTTP请求、多文件图片上传下载]

简单的JSON的HTTP传输就不说了,看一个简单的DEMO吧. 主要明白parameters是所填参数,类型是字典型.我把这部分代码封装起来了,以便多次调用.也许写在一起更清楚点. #pragma mark - JSON方式post提交数据 - (void)postJSONWithUrl:(NSString *)urlStr parameters:(id)parameters success:(void (^)(id responseObject))success fail:(void (^)(

iOS利用AFNetworking(AFN) 实现图片上传

1.上传图片以二进制流的形式上传 1 #pragma mark - 文件上传  2 - (IBAction)uploadImage  3 {  4     /*  5      此段代码如果需要修改,可以调整的位置  6        7      1. 把upload.php改成网站开发人员告知的地址  8      2. 把file改成网站开发人员告知的字段名  9      */ 10     // 1. httpClient->url 11      12     // 2. 上传请求P

Android开发中使用七牛云存储进行图片上传下载

Android开发中的图片存储本来就是比较耗时耗地的事情,而使用第三方的七牛云,便可以很好的解决这些后顾之忧,最近我也是在学习七牛的SDK,将使用过程在这记录下来,方便以后使用. 先说一下七牛云的存储原理,上面这幅图片是官方给出的原理图,表述当然比较清晰了.可以看出,要进行图片上传的话可以分为五大步: 1. 客户端用户登录到APP的账号系统里面: 2. 客户端上传文件之前,需要向业务服务器申请七牛的上传凭证,这个凭证由业务服务器使用七牛提供的服务端SDK生成: 3. 客户端使用七牛提供的客户端S