zoukankan      html  css  js  c++  java
  • 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是一个属性, 用来记录上传了几张图片了.

    这个要拼接在图片起名字上面, 因为如果不用他, 图片的名字都是一样的(同时开始上传,时间戳一样).

  • 相关阅读:
    .Net WebClient 上传文件错误集锦
    Asp.net 1.1 Treeview 控件的绑定
    SQL Server 2008使用问题集锦
    14 个经典的javascript代码
    C#3.0之自动属性&对象初始化器
    Asp.Net Ajax 2.0 调用WebService 中的方法
    Access Insert Into 语法错误 集锦(不断更新中...)
    项目中常用的几个JS
    广州火车站网上订票系统2011年春运订票指南
    好文收集
  • 原文地址:https://www.cnblogs.com/mafeng/p/5940016.html
Copyright © 2011-2022 走看看