iOS - 关于上传手机本地图片到网页的问题
来源:互联网 发布:淘宝11.11抢拍技巧 编辑:程序博客网 时间:2024/04/27 16:42
故事背景:我们可以获取到手机系统相册里面的图片,并且可以把它转化成UIImage *,至于本地图片,直接可以根据图片名字把它转化成UIImage * 类型的,其比较简单,在此不做说明。关键问题是,把这样的类型,如何上传到网页?也就是变成一个可以点开的链接。在此,我利用第三方AFNetworking上传。代码如下:
#import "AFNetworking.h"
@interface ViewController ()<UIImagePickerControllerDelegate,UINavigationControllerDelegate> {
UIImageView *_imageView; // 设置一个接受图片的控件
}
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
// 创建控件 触发效果
UIButton *button = [UIButtonbuttonWithType:UIButtonTypeSystem];
button.frame = CGRectMake(100,100, 100,100);
button.backgroundColor = [UIColorlightGrayColor];
[button setTitle:@"相册"forState:UIControlStateNormal];
[button addTarget:selfaction:@selector(buttonClick)forControlEvents:UIControlEventTouchUpInside];
[self.viewaddSubview:button];
UIImageView *imageView = [[UIImageViewalloc] init];
imageView.frame = CGRectMake(200,300, 200,200);
[self.viewaddSubview:imageView];
_imageView = imageView;
}
// 按钮点击事件
- (void)buttonClick {
// 1.判断是否可用
if (![UIImagePickerControllerisSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {
return;
}
// 2. 创建图片选择控制器
UIImagePickerController *ipc = [[UIImagePickerControlleralloc] init];
// 3.设置打开照片相册类型(显示所有相簿)
ipc.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
ipc.delegate = self;
[self presentViewController:ipcanimated:YEScompletion:nil];
}
//获取图片后的操作
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info {
// 设置图片
UIImage *image = info[UIImagePickerControllerOriginalImage];
_imageView.image = image;
// 销毁控制器
[picker dismissViewControllerAnimated:YEScompletion:nil];
//上传图片的方法
[selfuploadImageWithImage:image];
}
// 上传图片的方法
- (void)uploadImageWithImage:(UIImage *)image {
AFHTTPSessionManager *manager = [AFHTTPSessionManagermanager];
//上传图片时候用到的URLStr 这个是上传图片到网页用到的接口上的链接
NSString *imageUrlStr =@"http://58.51.146.24/jfinalbbs/file/upload_pic";
manager.responseSerializer.acceptableContentTypes = [NSSetsetWithObjects:@"text/html",@"application/json",nil];
[manager POST:imageUrlStrparameters:nilconstructingBodyWithBlock:^(id _Nonnull formData) {
NSData *imageData =UIImageJPEGRepresentation(image, 0.1);
NSDateFormatter *formatter = [[NSDateFormatteralloc] init];
formatter.dateFormat =@"yyyyMMddHHmmss";
NSString *str = [formatterstringFromDate:[NSDatedate]];
NSString *fileName = [NSStringstringWithFormat:@"%@.jpg", str];
///////////////////////////////////////// name就是我们要传的参数名字(file_upload)
[formData appendPartWithFileData:imageData name:@"file_upload"fileName:fileName mimeType:@"image/jpeg"];
} progress:^(NSProgress *_Nonnull uploadProgress) {
} success:^(NSURLSessionDataTask *_Nonnull task, id _Nullable responseObject) {
//NSLog(@"responseObject = %@, task = %@",responseObject,task);
// subUrl是服务器给我们返回的链接后面的一小部分
NSString *subUrl = responseObject[@"url"];
//最终转化成功的图片链接 要在前面拼接上公司的信息,这个服务器人员说的算
NSString *needURL = [NSStringstringWithFormat:@"http://idongtian.com/jfinalbbs%@",subUrl];
//最后把这个转化成功的链接打印出来,复制到网页上面,是不是可以打开看到上传的图片了,有没有小兴奋呢
NSLog(@"%@",needURL);
} failure:^(NSURLSessionDataTask *_Nullable task, NSError *_Nonnull error) {
NSLog(@"error = %@",error);
}];
}
- iOS - 关于上传手机本地图片到网页的问题
- 上传手机图片的问题
- android选取本地图片及关于图片压缩上传问题
- 解决 网页本地调试通过,上传到服务器上后运行不加载JavaScript的问题
- 微信内网页某些安卓手机不能上传图片文件的问题(1)
- 微信内网页某些安卓手机不能上传图片文件的问题(2)
- kindeditor上传本地图片的问题
- 上传图片,为什么在本地wamp上的图片上传正常,移动到服务器上就出现问题了?
- Chrome浏览器无法将网页中的图片保存到本地的问题
- 手机端本地图片或者拍照的上传功能
- 上传手机图片的问题(2)
- 上传本地图片到数据库
- php上传图片到数据库与网页无法显示的问题
- ios 调用相机 上传图片到服务器 图片角度问题
- IOS关于图片上传
- asp.net 保存网页上的图片到本地
- 实践项目九:抓取慕课网网页的图片到本地
- js实现网页图片上传本地预览
- [Kafka-users] Producer not distributing across all partitions
- 当你迷茫时,请努力做好现在的工作
- arm交叉编译器gnueabi、none-eabi、arm-eabi、gnueabihf、gnueabi区别
- bootstrap nav nav-tabs 选项卡 的使用实例
- JavaScript基础(对象)
- iOS - 关于上传手机本地图片到网页的问题
- 2016.10.19回顾
- Struts2数据转换
- 安装Oracle后数据库不能启动,出现ORA-27125错误
- ACheckBox
- 海量数据处理
- 为新版B-JUI找回查找带回(lookup)插件
- Android 屏幕旋转 处理 AsyncTask 和 ProgressDialog 的最佳方案
- C#导出excel单元格格式设置