利用AFN上传多张图片到服务器

最近服务器做了一个可以支持多张图片上传的接口,所以我对应的也找了AFN多图片上传的方法

这里我主要是针对UImage数组的传入,我觉得大部分我都是能获得UImage来上传的,然而在网上找到的方法都是要获得图片的地址,所以就自己整了这个

#pragma mark - 上传图片
- (void)uploadImages:(NSArray <UIImage *>*)images
{
    WEAKSELF;
    AFHTTPSessionManager *mar = [AFHTTPSessionManager manager];
    NSMutableDictionary *params = [NSMutableDictionary dictionary];
   //添加服务器需要你传的参数 params

    NSString *url = nil;    //拼接地址
    url = [NSString stringWithFormat:@"%@%@", BASE_URL, URL_SHOP_IMAGE_UPLOAD];

    [mar POST:url parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {

        //拼接图片
        [images enumerateObjectsUsingBlock:^(UIImage * _Nonnull image, NSUInteger idx, BOOL * _Nonnull stop) {

            NSData *imageData = UIImagePNGRepresentation(image);

            if (imageData.length >= 1024 * 1024) {                //因为我们服务器有限制1M以内   所以我超过1M的进行压缩了
                imageData = [image resetSizeOfImageData:image maxSize:1000];
                [formData appendPartWithFileData:imageData name:@"kinta" fileName:@"kinta.jpg" mimeType:@"image/jpg"];
            }else{

                [formData appendPartWithFileData:imageData name:@"kinta" fileName:@"kinta.png" mimeType:@"image/png"];
            }

        }];

    } progress:^(NSProgress * _Nonnull uploadProgress) {

        // 回到主队列刷新UI,用户自定义的进度条
        dispatch_async(dispatch_get_main_queue(), ^{
            [SVProgressHUD showProgress:1.0 *
             uploadProgress.completedUnitCount / uploadProgress.totalUnitCount];
        });

    } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {

        NSLog(@"上传成功 %@", responseObject);

        id datalist = responseObject[@"datalist"];

        NSLog(@"%@",datalist);

        } else {

        }

    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {

        NSLog(@"上传失败 %@", error);
        [SVProgressHUD dismiss];
    }];

}
时间: 2024-10-27 05:56:30

利用AFN上传多张图片到服务器的相关文章

第五十三篇、OC利用AFN上传视频到服务器

整体思路已经清楚,拿到视频资源,先转为mp4,写进沙盒,然后上传,上传成功后删除沙盒中的文件. 本地拍摄的视频,上传到服务器: //视频转换为MP4 //转码操作... _hud.mode = MBProgressHUDModeIndeterminate; _hud.labelText = @"转码中..."; AVURLAsset *avAsset = [AVURLAsset URLAssetWithURL:_filePathURL options:nil]; NSDateForma

利用put上传文件到服务器

#import "KUViewController.h" #import "KUProgress.h" @interfaceKUViewController ()<NSURLSessionTaskDelegate> //下载进度的类,继承UIview @property (weak, nonatomic) IBOutlet  KUProgress *progressView; @end @implementation KUViewController -

canvas利用formdata上传到服务器

1.首先绘制canvas图片 <canvas id="myCanvas" width="100" height="100" style="border:1px solid #d3d3d3;border-radius:50%"> 您的浏览器不支持 HTML5 canvas 标签. </canvas> 这里canvas绘图就不是本文章讲解的内容,我们简单的在画布上写两个字: var canvas = doc

ASP.NET(C#)实现一次性动态上传多张图片的代码(多个文件)

在做asp.net的Web开发的时候,我们经常会遇到一次性上传多个文件的需求.通常我们的解决方法是固定放多个上传文件框,这样的解决办法显然是不合理的,因为一次上传多个,就意味着数量不确定.因此我们就要让这些文件上传框动态添加,下面我以我做的一个图库管理中的上传图片的功能为例 默认是上传一个图片,但当我们点“增加图片”按钮时可以实现选择多个图片及其描述同时上传,本功能限制一次最多只能上传8张,且每张图片大小不超过1M,这个大家可根据实际情况更改! 第一步,使用javascript代码实现动态添加文

Okhttp3上传多张图片同时传递参数

之前上传图片都是直接将图片转化为io流传给服务器,没有用框架传图片. 最近做项目,打算换个方法上传图片. Android发展到现在,Okhttp显得越来越重要,所以,这次我选择用Okhttp上传图片. Okhttp目前已经更新到Okhttp3版本了,用法跟之前相比,也有一些差别.在网上找了很多资料, 并和java后台同事反复调试,终于成功上传多张图片,同时传递一些键值对参数. 以下是我对该过程的封装: private static final MediaType MEDIA_TYPE_PNG =

利用SecureCRT上传、下载文件(使用sz与rz命令),超实用!

    借助securtCRT,使用linux命令sz可以很方便的将服务器上的文件下载到本地,使用rz命令则是把本地文件上传到服务器.     其中,对于sz和rz的理解与记忆我用了如下的方法(很多时候容易搞混):     sz中的s意为send(发送),告诉客户端,我(服务器)要发送文件 send to cilent,就等同于客户端在下载.     rz中的r意为received(接收),告诉客户端,我(服务器)要接收文件 received by cilent,就等同于客户端在上传.    

微信js sdk上传多张图片

微信js sdk上传多张图片,微信上传多张图片 该案例已tp3.2商城为例 直接上代码: php代码: public function ind(){ $appid="11111111111111111111"; $secret="11111111111111111111"; $token = S('access_token'); if (!$token) { $res = file_get_contents("https://api.weixin.qq.c

php 利用socket上传文件

php 利用socket上传文件 张映 发表于 2010-06-02 分类目录: php 一,利用fsockopen来上传文件 以前我写过一篇关于socket通信原理的博文http://blog.51yip.com/php/673.html有兴趣的朋友可以看看,前面讲的那篇博文,socket的服务器和客户端都是要用php命令来运行的.平常我们上传文件是浏览本地文件,通过一个php程序将文件上传一个地方,这个时候我们用php命令来运行php程序就不方便了.这个时候我们可以用fsockopen来打开

初学者利用git 上传代码到Coding的简单操作步骤

初学者利用git 上传代码到Coding的简单操作步骤 1.首先登陆coding网站注册账号https://coding.net/ (注册完后需登陆邮箱激活邮件) 2.登陆刚注册的coding账号 ,添加项目 添加项目-〉输入项目名称-〉输入对项目的简单描述---〉选择"公开"-〉创建项目 到此为止,后面需要将本次实验内容push到该项目chap1下. 此处,需要记录http://git.coding.net/gdcs16_000/chap1.git   (gdcs16_000为你的注