uniapp如何上传图片-金沙1005

uniapp如何上传图片_uniapp上传视频文件近日在使用uni.uploadfile上传图片时,碰到后端收到不到文件的问题,网上没有写uni-appjava后端的处理实例,小程序到是有很多,但都是单文件上传,即使是多文件上传,也是采用一个for循环多次调用uploadfile函数,对文件一个一个提交。伪代码如下://微信小程序为例:for(vari=0;i

近日在使用uni.uploadfile上传图片时,碰到后端收到不到文件的问题,网上没有写uni-app java后端的处理实例,小程序到是有很多,但都是单文件上传,即使是多文件上传,也是采用一个for循环多次调用uploadfile函数,对文件一个一个提交。伪代码如下:

// 微信小程序为例:
for (var i = 0; i < filepaths.length; i  ){
    
    wx.uploadfile({
        url:this.url,    
        filepath:filepaths[i],
        name:'file',
        formdata:data,
        header:{"content-type": "multipart/form-data"},
        success: (res) =>{
            if (res.data.code == 200){
                console.log('上传成功');
            }
        }
    })
}

uni-app的uni.uploadfile在5 app支持多文件上传,后端处理多文件上传的时候与单文件上传有些不同之处。

一、单文件上传,首先是前端

uni.uploadfile({
    url:this.url,     // 后端api接口
    filepath: filepaths[0], // uni.chooseimage函数调用后获取的本地文件路劲
    name:'file',     //后端通过'file'获取上传的文件对象
    formdata: this.senddate,
    header:{"content-type": "multipart/form-data"},
    success:(res) => {
        if (res.data.code == 200){
            console.log('文件上传成功')
        }
    }
});

后端处理单文件上传比较简单,代码如下:

@requestmapping("/uploadfile")
public result uploadfile(httpserveletrequest request, @requestparam("file")multipartfile [] files){
    
    // 这样就可以收到文件了,files.length == 1.
    system.out.println(files.length);
    // 后续操作省略
}

二、多文件上传

前端代码:

// 文件路劲封装
let imgs = this.imagelist.map((value, index) => {
    return {
            name: "image"   index, 
            uri: value
        }
});
uni.uploadfile({
    url:this.url, 
    files: imgs,
    formdata: this.senddate,
    header:{"content-type": "multipart/form-data"},
    success: (res) => {
        if (res.statuscode === 200) {
            uni.showtoast({
                title: "反馈成功!"
            });
        }
    }
})

不一样的地方在于:单文件上传的filepath和name参数没有了,取而代之的是files,官方文档有明确说明

uniapp如何上传图片_uniapp上传视频文件

后端代码:

java后端处理多文件上传时,如果仍用单文件上传的后端代码,files.length总等于0,因为注解@reqeustparam(”file”)里面的file在前端并没有这样设置并提交。

仔细分析uni-app官方文档对于uni.uploadfile函数的说明,知道该函数发起的请求,content-type为multipart/form-data,于是便可以从request对象中获取multipartfile。源码如下:

// 如下代码只保留了主逻辑
@requestmapping("/uploadfile")
public result uploadfile(httpservletrequest request, formdata formdata) throws ioexception{
		
    commonsmultipartresolver commonsmultipartresolver = new commonsmultipartresolver(request.getsession().getservletcontext());
		
	
    commonsmultipartresolver.setdefaultencoding("utf-8");
    if (commonsmultipartresolver.ismultipart(request)){
        multiparthttpservletrequest mulreq = (multiparthttpservletrequest) request;
	map map = mulreq.getfilemap();
			
        // key为前端的name属性,value为上传的对象(multipartfile)
        for (map.entry entry : map.entryset()) {
            // 自己的保存文件逻辑
            saveorupdateimagefile(feedback.getid(), entry.getkey(), entry.getvalue());
        }  
    }      
    return result.success();
	
}

以上便是uni-app在5 app上多文件上传的前后端处理代码,如有其他方法,欢迎留言交流。

 

 

 

js555888金沙老品牌的版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由思创斯整理,转载请注明出处:https://ispacesoft.com/80002.html

(0)

相关推荐

  • java集合框架(jcf java collections framework)javacollection框架中包含了大量集合接口以及这些接口的实现类和操作他们的方法。包括:集合(collection)列表(list)arraylist有序可排序可重复,可以for循环遍历线程不安全底层是数组查询快增删慢linkedlistvectorstack队列(queue)arrayblockingqueuelinkedblo…

    2022年11月17日
  • 「java学习」java基础巩固之java实现文件上传对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的。如果直接使用servlet获取上传文件的输入流然后再解析里面的请求参数是比

  • java04:java方法详解四、java方法详解 1、什么是方法 举例: system.out.println()//system类 out对象 println()方法 描述:java方法是语句的集合,它们在一起执行一个功能: 方法是解决一类问题的步骤的有序组合 方法包含于类或对象中 方法在程序中被穿件,在其他地方被引用 设计 …

  • 五分钟java代码教会你:ffmpeg实现视频试看(centos7版本)当领导要你开发视频试看功能,怎么破??我用java代码教会你,花5分钟就能学会,赶紧来看看吧。

  • string.intern()方法作用_java volatile下文笔者讲述java中string.intern()方法的功能简介说明,如下所示: string.intern原理 string.intern(): 此方法是一个native方法 底层调用c 的 s

  • 2019年java面试题基础系列228道(2),查漏补缺!jvm 中类的装载是由类加载器(classloader)和它的子类来实现的,java 中的类加载器是一个重要的 java 运行时系统组件,它负责在运行时查找和装入类文件中的类。 由于 java 的跨平台性,经过编译的 java 源程序并不是一个可执行程序,而是一个或多个类文件。…

  • javadoc 错误:编码gbk不可映射字符[通俗易懂]如果eclipse使用utf-8那么生成javadoc会出现这个问题。解决办法:在第三个对话框中加入这个-encodingutf-8-charsetutf-8

  • java中的set集合「建议收藏」概述set集合类似于一个罐子,程序可以依次把多个对象“丢进”set集合,而set集合通常不能记住元素的添加顺序。实际上set就是collection只是行为略有不同(set不允许包含重复元素)。set集合不允许包含相同的元素,如果试图把两个相同元素加入同一个set集合中,则添加操作失败,add()方法返回false,且新元素不会被加入。hashset类hashset是set接口的典型实现,…

发表回复

您的电子邮箱地址不会被公开。

联系金沙1005

关注“java架构师必看”公众号

回复4,添加站长微信。

附言:ispacesoft.com网而来。

关注微信
网站地图