Uni-app 多图上传

使用Uni-app提供的意见反馈页面,多图上传时,发现怎么也上传不上去。

1张图片可以,2张以上图片就接收不到参数了,到现在也不知道是咋回事。

解决案:

uni-app代码

chooseImg() { //选择图片
                    uni.chooseImage({
                    sourceType: ["camera", "album"],
                    sizeType: "compressed",
                    count: 8 - this.imageList.length,
                    success: (res) => {
                        this.imageList = this.imageList.concat(res.tempFilePaths);
                    }
                })
            },
send() { //发送反馈
                console.log(this.sendDate);
                let imgs = this.imageList.map((value, index) => {
                    return {
                        name: "image" + index,
                        uri: value
                    }
                })
				console.log(JSON.stringify(imgs));
                uni.uploadFile({
                    url: `服务端地址`,
                    files: imgs,
                    formData: this.sendDate,
					header: {
						"Content-Type": "multipart/form-data"
					},
                    success: (res) => {
                        if (res.statusCode === 200) {
                            uni.showToast({
                                title: "反馈成功!"
                            });
                             this.imageList = [];
                             this.sendDate = {
                                 score: 0,
                                 content: "",
                                 contact: ""
                             }
                        }
                    },
                    fail: (res) => {
                        uni.showToast({
                            title: "系统异常,请与管理员联络",
                            position:'bottom'
                        });
                        console.log(res)
                    }
                });
            }

服务端我是用的是SSM框架

至于formData里的值,我是通过request.getParameter();这种方式获取的。

其实想在参数后面直接加一个实体类接受的,但是加上之后在请求接口就进不来了。不知道为啥

大佬们有知道的,还请告诉一下。

    @RequestMapping(value = "/addFeedBack")
	@ResponseBody
	public String addFeedBack(HttpServletRequest request){
		// 获取formData信息
//		FeedBackModel feedBackModel = new FeedBackModel();
//		feedBackModel.setAppid(request.getParameter("appid"));
//		feedBackModel.setDeviceImei(request.getParameter("imei"));
//		feedBackModel.setOsName(request.getParameter("p"));
//		feedBackModel.setDeviceModel(request.getParameter("md"));
//		feedBackModel.setRuntimeVersion(request.getParameter("app_version"));
//		feedBackModel.setOsVersion(request.getParameter("os"));
//		feedBackModel.setNetStatus(request.getParameter("net"));
//		feedBackModel.setScore(request.getParameter("score"));
//		feedBackModel.setContent(request.getParameter("content"));
//		feedBackModel.setContact(request.getParameter("contact"));
		
		CommonsMultipartResolver commonsMultipartResolver = new 
        CommonsMultipartResolver(request.getSession().getServletContext());
	    commonsMultipartResolver.setDefaultEncoding("utf-8");
	 
	    if (commonsMultipartResolver.isMultipart(request)){
	        MultipartHttpServletRequest mulReq = (MultipartHttpServletRequest) request;
	        Map<String, MultipartFile> map = mulReq.getFileMap();
				
	        // key为前端的name属性,value为上传的对象(MultipartFile)
	        for (Map.Entry<String, MultipartFile> entry : map.entrySet()) {
	            // 自己的保存文件逻辑
	        	System.err.println(""+entry.getKey()+ entry.getValue());
	            //saveOrUpdateImageFile(feedback.getId(), entry.getKey(), 
                entry.getValue());
	        }  
	    }      
		return JSONObject.toJSONString("");
	}

以上就是所有代码,亲测有效。

我上传了4张图片,这是控制台打印出来的结果

大家如果有好的方法或者改善意见,欢迎留言。谢谢!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值