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) 实现图片上传相关推荐

  1. ssm上传文件获取路径_ssm框架实现图片上传显示并保存地址到数据库(示例代码)...

    本案例是通过springmvc+spring+mybatis框架以商品上传为例,实现的图片上传功能,并把图片的地址保存到数据库并在前台显示上传的图片. 本项目是使用maven搭建的项目,首先看下项目结 ...

  2. weui上传文件完整例子php,weui实现图片上传

    您现在的位置是:网站首页>>前端技术>>weui weui实现图片上传 发布时间:2019-04-30 16:37:17作者:wangjian浏览量:1657点赞量:0 在we ...

  3. android wcf 上传文件,第二篇 ( wcf 与 android 图片上传下载)

    老规矩废话不多说,直接入主题 注:wcf 使用rest风格,传递json数据,图片是经过base64编码,android 使用common-codec-1.5.jar 进行base64编码 服务器端 ...

  4. uni-app uni-file-picker文件上传实现拍摄从相册选择获取图片上传文档服务器(H5上传-微信小程序上传)

    前言 最近在使用uni-app写H5移动端,有一个从手机拍摄从相册选择获取图片上传到文档服务器功能. 查阅uni-app发现关于上传图片,uni-file-picker文件上传,uni.chooseI ...

  5. 介绍一个工具给大家,做网站时,经常要上传文件到外网服务器,但是上传时往往需要很长时间,如果有一个文件对比工具……...

    介绍一个工具给大家,做网站时,经常要上传文件到外网服务器,但是上传时往往需要很长时间,如果有一个文件对比工具, 可以对比每次版本有什么文件变化,并单独找出来.这样只需要上传需求的文件就可以达到版本更新 ...

  6. LayUI upload上传组件上传文件的两种方式(手动上传、自动上传)

    1 手动上传 上传文件分为两步,第一步选择文件,第二步上传文件. HTML代码: <input type='button' id='selectFile' value='选择文件'> &l ...

  7. $_post 数据上传到那个位置_如何实现图片上传并保存到数据库?

    (给Web前端雪儿加星标,提升前端技能) 之前写过图片上传的案例,但是时间一长就忘了,这次写的这个程序用到了图片的上传,并且能够图文显示,所以写了这篇文章来记录一下.由于人们的生活质量的提高及网络的发 ...

  8. MdEditor-v3中上传照片的前后端对接(图片上传至又拍云云储存)

    MdEditor-v3中上传照片的前后端对接(图片上传至又拍云云储存) 使用springboot+MdEditor-v3+又拍云实现markdown的图片上传功能 需要有一定的springboot和v ...

  9. php flash 图片上传,Flash教程:flash+php实现图片上传

    本文主要向大家介绍了flash+php实现图片上传,通过具体的代码向大家展示,希望对大家学习Flash教程有所帮助. flash负责打开browser,浏览我的电脑: 这里我们需要的flash方法有: ...

最新文章

  1. 汇编 Irvine32链接库中一些过程函数的使用说明
  2. UOJ #164 【清华集训2015】V (线段树)
  3. 【windows7】解决IIS 80端口占用问题(亲测)
  4. P5607-[Ynoi2013]无力回天NOI2017【线性基,线段树,树状数组】
  5. qiniudn.com域名已完全恢复
  6. 两个年月下拉列表html,html年月日下拉联动菜单 年月日三下拉框联动
  7. html判断图片资源是否存在,javascript怎么判断图片是否存在?
  8. trim去除空格失败
  9. hdoj 2586 How far away ?
  10. 接口测试需要怎么做?
  11. 联想产品标准保修承诺
  12. 智慧工地 | 数字孪生楼宇施工管理平台
  13. 如何做简单的数据分析
  14. 金蝶K3采购暂估案例教程3差额调整
  15. 【转】深度整理 | 欧盟《一般数据保护法案》(GDPR)核心要点
  16. 使用Wechaty搭建微信文件日程匣子
  17. ​QGIS Cloud 一个基于云的 GIS 平台
  18. Flash动画学习指南二:帧频(Frame rates)
  19. GPU-Z v2.44.0 发布
  20. Spark 杂记--- 键值对操作RDD

热门文章

  1. Xampp配置本地域名及常见错误解决
  2. WKWebview加载本地图片时出现路径问题
  3. BlockingCollectionT 类实现 列队操作
  4. 20165222第一周查漏补缺
  5. ubuntu 安装过程所需软件
  6. linux 文件夹的颜色代表什么意思
  7. 设计模式学习笔记五——Prototype模式
  8. 如何让tomcat服务器运行在80端口,并且无需输入项目名即可访问项目()
  9. 云栖科技评论第48期:前沿科技对世界的改造 我们这代人只完成了1%
  10. vaOJ10369 - Arctic Network