最近搞图片上传,折腾了一个星期终于做出来了,网上搜出来的方法几乎都是好几年前的,试了好多都不能用,此次把代码公布出来供大家参考。

注:部分代码是后台写的,此方法没用到第三方库。

1.图片保存到本地同时上传服务器

(void)saveImage:(UIImage *)image {

//NSLog(@“保存头像!”);

//[userPhotoButton setImage:image forState:UIControlStateNormal];

BOOL success;

NSFileManager *fileManager = [NSFileManager defaultManager];

NSError *error;

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *documentsDirectory = [paths objectAtIndex:0];

NSString *imageFilePath = [documentsDirectory stringByAppendingPathComponent:@“selfPhoto.jpg”];

NSLog(@“imageFile->>%@”,imageFilePath);

success = [fileManager fileExistsAtPath:imageFilePath];

if(success) {

success = [fileManager removeItemAtPath:imageFilePath error:&error];

}

//UIImagesmallImage=[self scaleFromImage:image toSize:CGSizeMake(80.0f, 80.0f)];//将图片尺寸改为8080

UIImage *smallImage = [self thumbnailWithImageWithoutScale:image size:CGSizeMake(93, 93)];

[UIImageJPEGRepresentation(smallImage, 1.0f) writeToFile:imageFilePath atomically:YES];//写入文件

UIImage *selfPhoto = [UIImage imageWithContentsOfFile:imageFilePath];//读取图片文件

self.img.image = selfPhoto;

NSLog(@“selfPhoto = %@”,selfPhoto);

NSURL * url = [NSURL URLWithString:@"http://blog.sina.com.cn/tmyij"];

NSData *imageData = UIImageJPEGRepresentation(selfPhoto,1.0f);

[self uploadFileWithURL:url data:imageData];

}

2.下面俩个方法都是设置请求参数

static NSString *boundaryStr = @"–";

static NSStringrandomIDStr = @"****";

static NSString *uploadID = @“file”;

(NSString *)topStringWithMimeType:(NSString *)mimeType uploadFile:(NSString *)uploadFile

{

NSMutableString *strM = [NSMutableString string];

[strM appendFormat:@"%@%@\r\n", boundaryStr, randomIDStr];

[strM appendFormat:@“Content-Disposition: form-data; name=”%@"; filename="%@"\r\n", uploadID, uploadFile];

[strM appendFormat:@“Content-Type: %@\r\n”, mimeType];

[strM appendFormat:@"\r\n"];

NSLog(@"%@", strM);

return [strM copy];

}

(NSString *)bottomString

{

NSMutableString *strM = [NSMutableString string];

[strM appendFormat:@"%@%@\r\n", boundaryStr, randomIDStr];

[strM appendString:@“Content-Disposition:form-data; name=“number”\r\n”];

[strM appendFormat:@"\r\n"];

[strM appendString:@“1234566788”];//上传的参数parameter

[strM appendFormat:@"\r\n"];

NSLog(@"%@", strM);

return [strM copy];

}

3.图片上传服务器

(void)uploadFileWithURL:(NSURL *)url data:(NSData *)data

{

NSString *topStr = [self topStringWithMimeType:@“application/img” uploadFile:@“myHead.jpg”];

NSString *bottomStr = [self bottomString];

NSMutableData *dataM = [NSMutableData data];

[dataM appendData:[bottomStr dataUsingEncoding:NSUTF8StringEncoding]];

[dataM appendData:[topStr dataUsingEncoding:NSUTF8StringEncoding]];

[dataM appendData:data];

[dataM appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];

NSString * s = [NSString stringWithFormat:@"%@%@%@\r\n",boundaryStr, randomIDStr, boundaryStr];

[dataM appendData:[str22 dataUsingEncoding:NSUTF8StringEncoding]];

NSLog(@"%@%@%@",topStr,data,bottomStr);

// 1. Request

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:0 timeoutInterval:20.0f];

request.HTTPBody = dataM;

request.HTTPMethod = @“POST”;

NSString *strLength = [NSString stringWithFormat:@"%ld", (long)dataM.length];

[request setValue:strLength forHTTPHeaderField:@“Content-Length”];

NSString *strContentType = [NSString stringWithFormat:@“multipart/form-data;boundary=%@”, randomIDStr];

[request setValue:strContentType forHTTPHeaderField:@“Content-Type”];

[NSURLConnection sendAsynchronousRequest:request

queue:[[NSOperationQueue alloc] init] completionHandler:^(NSURLResponse

*response, NSData *data, NSError *connectionError) {

NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

NSLog(@"%@", result);

}];

}

ios java 图片上传到服务器,iOS 图片上传服务器相关推荐

  1. ios 拍照上传到服务器_ios端浏览器拍照上传到服务器,图片被旋转90度 php 解决方案...

    1.可以通过前端进行解决,本案例通过后端解决的 判断请求的浏览器的ua,如果是ios浏览器则进行90度旋转 重点来了: 必须确保检测的图片是ios设备上传的完整图片,不要在前端压缩过的,因为压缩后的图 ...

  2. ios如何上传文件到服务器,ios通过ftp上传文件到服务器

    ios通过ftp上传文件到服务器 内容精选 换一换 华为云帮助中心,为用户提供产品简介.价格说明.购买指南.用户指南.API参考.最佳实践.常见问题.视频帮助等技术文档,帮助您快速上手使用华为云服务. ...

  3. java 图片服务器 上传_Java实现把图片上传到图片服务器(nginx+vsftp)

    前言: 在我另一篇笔记中已经记载了如何用nginx + vsftp搭建图片服务器(请参考nginx + vsftp搭建图片服务器),并且用vsftp的客户端工具filezilla测试过已经可用.但是在 ...

  4. 微信JSSDK多图片上传并且解决IOS系统上传一直加载的问题

    微信JSSDK多图片上传并且解决IOS系统上传一直加载的问题 参考文章: (1)微信JSSDK多图片上传并且解决IOS系统上传一直加载的问题 (2)https://www.cnblogs.com/co ...

  5. JS 图片压缩上传并在iOS中矫正方向

    JS 图片压缩上传并在iOS中矫正方向 最近在项目中,用到图片上传.如果不进行压缩再上传的话,动辄34兆的图片,上传起来会相当漫长.还有一点就是,在iOS中所拍摄的图片在本地显示是没有问题的,但是上传 ...

  6. 微信开发h5图片上传(拍照、图片压缩、IOS照片旋转)

    微信开发h5图片上传 开发环境 vue.js,原生h5 input file, 微信公众号网页 依赖安装 exif-js:IOS下拍照照片的方向有问题, 需要exif-js来读取照片信息进行旋转处理: ...

  7. java图片如何上传_Java如何将图片上传到服务器

    Java如何将图片上传到服务器 发布时间:2020-11-10 17:28:18 来源:亿速云 阅读:96 作者:Leah 这篇文章将为大家详细讲解有关Java如何将图片上传到服务器,文章内容质量较高 ...

  8. java 上传文件并读取_Java实现图片上传到服务器并把上传的图片读取出来

    在很多的网站都可以实现上传头像,可以选择自己喜欢的图片做头像,从本地上传,下次登录时可以直接显示出已经上传的头像,那么这个是如何实现的呢? 下面说一下我的实现过程(只是个人实现思路,实际网站怎么实现的 ...

  9. iOS:图片上传时两种图片压缩方式的比较

    上传图片不全面的想法:把图片保存到本地,然后把图片的路径上传到服务器,最后又由服务器把路径返回,这种方式不具有扩展性,如果用户换了手机,那么新手机的沙盒中就没有服务器返回的图片路径了,此时就无法获取之 ...

  10. TFTP服务器在Cisco设备上的应用(上传、下载IOS)

    网络拓扑图 基于对安全的考虑,Cisco总是默认关闭TELNET服务,并且只有配置了远程登陆密码才能使用.同时还要配置使能密码,负责不能进入特权模式. 实验一:通过TFTP服务器从Cisco路由器上下 ...

最新文章

  1. 布巴内斯瓦尔成智慧城市 印小城何以“智慧”
  2. 《用Python进行自然语言处理》第 11 章 语言数据管理
  3. 2008年北大核心有效期 计算机类核心(2011-01-31 15:02:46)
  4. 什么是爱?[转载朋友发给我的信息]
  5. Python3 数据结构:列表List中的方法
  6. 【CCF】201803-1 跳一跳
  7. 项目管理笔记(观念)
  8. 【自我救赎--牛客网Top101 4天刷题计划】 第一天 热身运动
  9. 2.Kong入门与实战 基于Nginx和OpenResty的云原生微服务网关 --- Kong 的安装和基本概念
  10. 新坑:基于AD9361的手持监测侦察接收机
  11. Thinkphp精仿韩都衣舍商城网站源码
  12. udp测试工具linux系统,网络测试工具下载_Packet Sender(UDP/TCP网络测试工具)
  13. 群晖218J搭建VLMCSD
  14. vue中自己实现的页面切换标签手动关闭功能
  15. Linux导出Excel图片水印中文乱码解决
  16. Linux文件IO操作
  17. 【MATLAB第3期】源码分享#数学建模常用算法程序整理
  18. vue组件传参(父传子)
  19. 漫画:什么是大数据?
  20. Python快速复制粘贴ins数据,采集网站内视频内容

热门文章

  1. 传入一个MapString,Long 返回它按value排序后的结果
  2. 2017前端资源汇总
  3. 201521123035《Java程序设计》第八周学习总结
  4. 让MySql支持Emoji表情(MySQL中4字节utf8字符保存方法)
  5. JAVA-用栈机制实现单词逆序排列
  6. CollapsiblePanel控件
  7. 4.3.5子网划分和子网掩码
  8. centos 7 网络设置与图像化界面下载
  9. 【剑指offer】面试题15:二进制中1的个数(Java)
  10. python rgb led控件_用树莓派实现RGB LED的颜色控制——Python版本