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 ...
随机推荐
- cal 命令
cal命令是linux里面查看日历的一个命令,效果如下: [root@localhost ~]# cal 十月 日 一 二 三 四 五 六 我们可以的很形象的从日历上看出今天是哪年,哪年的哪天,周几, ...
- Uploadify v3.2.1 参数说明
一.属性 属性名称 默认值 说明 auto true 设置为true当选择文件后就直接上传了,为false需要点击上传按钮才上传 . buttonClass ” 按钮样式 buttonCursor ‘ ...
- Ahead-of-time compilation(AOT)
Ahead-of-time (AOT) compilation is the act of compiling a high-level programming language such as C ...
- 如何用patch打补丁
patch -p1 < *.patch -p1代表忽略第一层目录(patch文件中的).
- Android驱动入门-Led控制+app+ndk库+底层驱动
硬件平台: FriendlyARM Tiny4412 Cortex-A9 操作系统: UBUNTU 14.04 LTS 时间:2016-09-20 21:56:48 本次实验使用的是 安卓APP + ...
- Samsung I9103刷cm-10.1的方法
按照官方网站的说明一步一步的做下去的时候发现在执行heimdall.exe文件的时候出现“不是win32的应用程序”的错误提示,因此决定按照其它方法安装recovery,然后再刷入CM10.1. sa ...
- css3和原生js时钟
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- ES5特性Object.seal
一个对象在默认状态下: 1,extensible:可扩展(可以添加新的属性) 2,configurable:可配置(可以改变原有属性的特性,比如修改属性的enumerable) Object.seal ...
- javascript实现优先队列
1.概念 一般情况下从队列中删除元素,都是率先入队的元素.但是有些使用队列的情况不遵循先进先出的原则,这就是插队,这需要使用优选队列的数据结构来进行描述. 从优先队列中删除元素的时候,需要考虑优先级的 ...
- PHP命令行模式
<?php error_reporting(E_ALL); header('Content-Type:text/plain;charset=utf-8'); interface CommandA ...