afn post请求上传文件_iOS利用AFNetworking(AFN) 实现图片上传
1.上传图片以二进制流的形式上传
1 #pragma
mark - 文件上传
2 - (IBAction)uploadImage
3 {
4
10 // 1.
httpClient->url
11
12 // 2.
上传请求POST
13 NSURLRequest
*request = [_httpClient multipartFormRequestWithMethod:@"POST"
path:@"upload.php" parameters:nil constructingBodyWithBlock:^(id
formData) {
14
//
在此位置生成一个要上传的数据体
15
//
form对应的是html文件中的表单
16
17
18
UIImage *image = [UIImage
imageNamed:@"头像1"];
19
NSData *data =
UIImagePNGRepresentation(image);
20
21
//
在网络开发中,上传文件时,是文件不允许被覆盖,文件重名
22
// 要解决此问题,
23
//
可以在上传时使用当前的系统事件作为文件名
24
NSDateFormatter *formatter =
[[NSDateFormatter alloc] init];
25
// 设置时间格式
26
formatter.dateFormat =
@"yyyyMMddHHmmss";
27
NSString *str = [formatter
stringFromDate:[NSDate date]];
28
NSString *fileName =
[NSString stringWithFormat:@"%@.png", str];
29
30
31
38
[formData
appendPartWithFileData:data name:@"file" fileName:fileName
mimeType:@"image/png"];
39
}];//file改为后台接收的字段或参数
40
41 // 3.
operation包装的urlconnetion
42
AFHTTPRequestOperation *op = [[AFHTTPRequestOperation alloc]
initWithRequest:request];
43
44 [op
setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation,
id responseObject) {
45
NSLog(@"上传完成");
46 }
failure:^(AFHTTPRequestOperation *operation, NSError *error)
{
47
NSLog(@"上传失败->%@", error);
48
}];
49
50
//执行
51
[_httpClient.operationQueue addOperation:op];
当要上传多张图片时只需在multipartFormRequestWithMethod方法上添加这些代码就好
AFNetWorking使用multipartFormRequestWithMethod方法上传多张图片问题
int i=0;
NSMutableURLRequest *request = [[AFNetWorkSingleton
shareInstance] multipartFormRequestWithMethod:@"POST"
path:@"Mindex/getimg" parameters:nil
constructingBodyWithBlock:^(idformData){
for(UIImage
*eachImage in array)
{
NSData *imageData =
UIImageJPEGRepresentation(eachImage,0.5);
[formData appendPartWithFileData:imageData
name:[NSString stringWithFormat:@"file%d",i ] fileName:[NSString
stringWithFormat:@"abc%d.jpg",i ]
mimeType:@"image/jpeg"];//file改为后台接收的字段或参数
i++;
}
}];
2.上传图片以二进制流的字符串的形式上传
-(void)postPhotosToShare_API23_withPid:(NSString *)_pid
andUid:(NSString *)_uid andScore:(float)_score andContent:(NSString
*)_content andAnonymous:(NSString *)_anonymous
andImgArray:(NSMutableArray *)_imgArray
{
path =
@"interface/product.php/product/";//path为网站开发人员告知的除去IP后的地址
NSURL *baseUrl1 = [NSURL
URLWithString:urlIP];//urlIP为网站开发人员告知的IP地址,例:http://192..168.1.1
httpClient =
[[AFHTTPClient alloc]initWithBaseURL:baseUrl1];
NSMutableDictionary
*parameters = [[NSMutableDictionary alloc]init];
[parameters setObject:_pid
forKey:@"pid"];
[parameters setObject:_uid
forKey:@"uid"];
[parameters
setObject:[NSString stringWithFormat:@"%f",_score]
forKey:@"score"];
[parameters
setObject:_content forKey:@"content"];
[parameters
setObject:_anonymous forKey:@"anonymous"];
if
(_imgArray.count!=0)
{
int imgCount=0;
for (UIImage *myImg in _imgArray)
{
NSData
*imageData = UIImageJPEGRepresentation(myImg,0.7);//进行图片压缩
NSString
*_encodedImageStr = [imageData base64Encoding];//进行64位转码转为字符串
[parameters setObject:_encodedImageStr forKey:[NSString
stringWithFormat:@"img[%i]",imgCount]];//进行img[%i]改为后台接收的字段或参数
imgCount
++;
}
}
request = [httpClient
requestWithMethod:@"POST" path:path parameters:parameters];
[request
setTimeoutInterval:kDataExpiryTime];//设置请求时间
[AFJSONRequestOperation
addAcceptableContentTypes:[NSSet setWithObject:@"text/html"]];
AFJSONRequestOperation
*operation = [[AFJSONRequestOperation
alloc]initWithRequest:request];
[operation
setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation,
id responseObject) {
NSDictionary *json = [NSJSONSerialization
JSONObjectWithData:operation.responseData
options:NSJSONReadingMutableContainers error:nil];
[self getResultSuccess:json
withTage:Get_API_Tag_23];//对api进行标记,可要可不要
}
failure:^(AFHTTPRequestOperation *operation, NSError *error) {
[self getResultFailed:error];
}];
[operation start];
}
afn post请求上传文件_iOS利用AFNetworking(AFN) 实现图片上传相关推荐
- ssm上传文件获取路径_ssm框架实现图片上传显示并保存地址到数据库(示例代码)...
本案例是通过springmvc+spring+mybatis框架以商品上传为例,实现的图片上传功能,并把图片的地址保存到数据库并在前台显示上传的图片. 本项目是使用maven搭建的项目,首先看下项目结 ...
- weui上传文件完整例子php,weui实现图片上传
您现在的位置是:网站首页>>前端技术>>weui weui实现图片上传 发布时间:2019-04-30 16:37:17作者:wangjian浏览量:1657点赞量:0 在we ...
- android wcf 上传文件,第二篇 ( wcf 与 android 图片上传下载)
老规矩废话不多说,直接入主题 注:wcf 使用rest风格,传递json数据,图片是经过base64编码,android 使用common-codec-1.5.jar 进行base64编码 服务器端 ...
- uni-app uni-file-picker文件上传实现拍摄从相册选择获取图片上传文档服务器(H5上传-微信小程序上传)
前言 最近在使用uni-app写H5移动端,有一个从手机拍摄从相册选择获取图片上传到文档服务器功能. 查阅uni-app发现关于上传图片,uni-file-picker文件上传,uni.chooseI ...
- 介绍一个工具给大家,做网站时,经常要上传文件到外网服务器,但是上传时往往需要很长时间,如果有一个文件对比工具……...
介绍一个工具给大家,做网站时,经常要上传文件到外网服务器,但是上传时往往需要很长时间,如果有一个文件对比工具, 可以对比每次版本有什么文件变化,并单独找出来.这样只需要上传需求的文件就可以达到版本更新 ...
- LayUI upload上传组件上传文件的两种方式(手动上传、自动上传)
1 手动上传 上传文件分为两步,第一步选择文件,第二步上传文件. HTML代码: <input type='button' id='selectFile' value='选择文件'> &l ...
- $_post 数据上传到那个位置_如何实现图片上传并保存到数据库?
(给Web前端雪儿加星标,提升前端技能) 之前写过图片上传的案例,但是时间一长就忘了,这次写的这个程序用到了图片的上传,并且能够图文显示,所以写了这篇文章来记录一下.由于人们的生活质量的提高及网络的发 ...
- MdEditor-v3中上传照片的前后端对接(图片上传至又拍云云储存)
MdEditor-v3中上传照片的前后端对接(图片上传至又拍云云储存) 使用springboot+MdEditor-v3+又拍云实现markdown的图片上传功能 需要有一定的springboot和v ...
- php flash 图片上传,Flash教程:flash+php实现图片上传
本文主要向大家介绍了flash+php实现图片上传,通过具体的代码向大家展示,希望对大家学习Flash教程有所帮助. flash负责打开browser,浏览我的电脑: 这里我们需要的flash方法有: ...
最新文章
- 汇编 Irvine32链接库中一些过程函数的使用说明
- UOJ #164 【清华集训2015】V (线段树)
- 【windows7】解决IIS 80端口占用问题(亲测)
- P5607-[Ynoi2013]无力回天NOI2017【线性基,线段树,树状数组】
- qiniudn.com域名已完全恢复
- 两个年月下拉列表html,html年月日下拉联动菜单 年月日三下拉框联动
- html判断图片资源是否存在,javascript怎么判断图片是否存在?
- trim去除空格失败
- hdoj 2586 How far away ?
- 接口测试需要怎么做?
- 联想产品标准保修承诺
- 智慧工地 | 数字孪生楼宇施工管理平台
- 如何做简单的数据分析
- 金蝶K3采购暂估案例教程3差额调整
- 【转】深度整理 | 欧盟《一般数据保护法案》(GDPR)核心要点
- 使用Wechaty搭建微信文件日程匣子
- ​QGIS Cloud 一个基于云的 GIS 平台
- Flash动画学习指南二:帧频(Frame rates)
- GPU-Z v2.44.0 发布
- Spark 杂记--- 键值对操作RDD