iOS -- 上传多张图片 后台(PHP)代码和上传一张的一样
// 上传多张图片
- (void)send {
// 设置初始记录量为0
self.count = 0;
self.upcount = 0;
// 设置初始值为NO
self.isUploadPictures = NO;
// 初始化数组
self.pictureList = [NSMutableArray array];
// 将数据发送到数据库
// 上传图片
// 获得网络管理者
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; // 设置请求参数
NSMutableDictionary *params = [NSMutableDictionary dictionary]; MFPublishPhotoTableViewCell *cell = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
// 循环上传图片
for (NSUInteger i = 0; i < cell.assets.count; i++) {
__weak typeof(self) weakSelf = self;
[manager POST:@"http://localhost:8888/upload_friend_circle_pictures.php" parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {
// 获取图片
MFTribeMemberCollectionViewCell *collectionViewCell = (MFTribeMemberCollectionViewCell *)[cell.collection cellForItemAtIndexPath:[NSIndexPath indexPathForRow:weakSelf.upcount inSection:0]];
weakSelf.upcount++;
// 获取图片数据
NSData *fileData = UIImageJPEGRepresentation(collectionViewCell.imageView.image, 1.0);
// 获取content
_content = cell.textView.text; // 设置上传图片的名字(用时间作为名字)
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyyMMddHHmmss";
NSString *str = [formatter stringFromDate:[NSDate date]];
NSString *fileName = [NSString stringWithFormat:@"%@%ld.png", str, weakSelf.upcount]; [formData appendPartWithFileData:fileData name:@"image" fileName:fileName mimeType:@"image/png"]; } progress:^(NSProgress * _Nonnull uploadProgress) {
NSLog(@"%@", uploadProgress);
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
NSLog(@"%@", task);
// 返回结果
NSLog(@"%@", responseObject);
self.count++;
// 如果所有的照片上传完成, 则将_isUploadPictures改为yes
if (_count == cell.assets.count) {
_isUploadPictures = YES;
}
// 将 图片 的地址 添加到数组
[self.pictureList addObject:responseObject[@"datas"][@"savePath"]];
// 如果所有的图片上传完成, 开始发送盆友圈上传到数据库
if (_isUploadPictures) {
// TODO 执行其他的操作
} andFailureBlock:^(NSError *error) {
NSLog(@"%@", error);
}];
} } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@"%@", error);
}];
}
self.count是一个属性, 用来记录上传了几张图片了.
这个要拼接在图片起名字上面, 因为如果不用他, 图片的名字都是一样的(同时开始上传,时间戳一样).
iOS -- 上传多张图片 后台(PHP)代码和上传一张的一样的更多相关文章
- GIT(1)----更新代码和上传代码操作的步骤
1.第一次下载代码 a.首先获得下载的地址,可从服务器,或者GitHut上获得.例如http://100.211.1.110:21/test/test.git b.终端里切换到想要将代码存放的目录,在 ...
- Asp.net mvc上传多张图片后台存储
前台页面通过<file name="img">标签数组上传图片,后台根据Request.Files["img"]来接收前台上传的图片. 1 Syst ...
- iOS 上拉下拉刷新简单实现代码
一般说到上拉刷新下拉刷新,很多人可能想到的是一个第三方开源框架EGORefresh,下面说下,如何自己写代码实现. UITableView本身是一个UIScrollView,所以UITableView ...
- IDEA使用总结1-Github下载代码和上传代码到Git
1. 首先你需要在IDEA中创建一个项目,创建完项目后使能版本管理插件 选择git后创建本地git仓库成功,提示如下 2.第二步 commit代码到 commit时会提示是否需要进行检查什么的 3.第 ...
- 在eclipse中使用git clone 别人共享在Github的代码和上传到自己的仓库!
原文地址:http://www.itdaan.com/blog/2014/10/24/ff5e03b5cefef19e1b6fbb7b49809846.html1.在eclipse中安装git:打开e ...
- 微信小程序上传多张图片,及php后台处理
微信小程序上传多张图片,级小程序页面布局直接来代码index.wxml <view class='body' style='width:{{windowWidth}}px;height:{{wi ...
- 1) 上传多张图片时 ,对 $_FILES 的处理. upload ; 2)fileinput 上传多张图片. 3) 修改,删除的时候删除原来的资源,图片 update, delete , 删除 4)生成器中两个字段上传图片的时候,要修改生成器生成的代码
1上传多张图片, 要对 $_FILES进行 重新处理. //添加 public function addCourseAlbumAction() { $CourseAlbumModel = new Co ...
- POST请求上传多张图片并携带参数
POST请求上传多张图片并携带参数 在iOS中,用POST请求携带参数上传图片是非常恶心的事情,HTTPBody部分完全需要我们自己来配置,这个HTTPBody分为3个部分,头部分可以携带参数,中间部 ...
- thinkphp3.2+cropper上传多张图片剪切图片
实现效果截图 点加号可以继续上传第二张图片 代码部<--引入cropper相关文件--> <link rel="stylesheet" href="/h ...
随机推荐
- Linux环境下使用gcc编译,gdb反汇编C语言程序
使用虚拟机 VMware Workstation 10 Linux环境:Ubuntu 14.04 LTS Server amd64 我把过程截图如下. 首先是hello world程序: 备注: ...
- java23种设计模式
http://www.cnblogs.com/beijiguangyong/archive/2010/11/15/2302807.html#_Toc281750445 http://www.runoo ...
- Vim命令大全
1.进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于 ...
- MVC、MVVM、MVP小结
MVC MVC(Mode View Controller)是一种设计模式,它将应用划分为三个部分: 数据(模型).展现层(视图).用户交互(控制器). 一个事件发生的过程: ① 用户和应用产生交互 ② ...
- position:absolute/relative/fixed小结
1.绝对定位:position:absolute; 当一个div块的位置被定义为绝对定位absolute时,也就意味着它失去了文档流的位置,后面的文档流会紧跟着补上来接替它的位置.如果上下左右的绝对偏 ...
- SQL 编程
用SQL编写程序首先我们要了解SQL的一些编程方法 1.使用变量 变量:是可以存储数据值的对象,可以使用局部变量向SQL语句专递数据. (1)局部变量 T-SQL中,局部变量的名称必须以标记@作为前缀 ...
- JAVA面向对象之一
一.面向过程的思想和面向对象的思想 面向对象和面向过程的思想有着本质上的区别, 作为面向对象的思维来说,当你拿到一个问题时,你分析这个问题不再是第一步先做什么,第二步再做什么,这是面向过程的思维,你应 ...
- 使用C#向ACCESS中插入数据
使用C#向ACCESS中插入数据 1.创建并打开一个OleDbConnection对象 string strConn = " Provider = Microsoft.Jet.OLEDB ...
- AC日记——紧急措施 openjudge 1.7 22
22:紧急措施 总时间限制: 1000ms 内存限制: 65536kB 描述 近日,一些热门网站遭受黑客入侵,这些网站的账号.密码及email的数据惨遭泄露.你在这些网站上注册若干账号(使用的用户 ...
- git删除文件需要注意的事项
当commit提交一个文件a到本地仓库中,然后又git rm a 删除这个文件(),再执行git push后,同样会把a文件push到远程仓库.并且这个时候执行git pull并不会从远程仓库拉取a文 ...