解决uni

您所在的位置:网站首页 jsp文件拓展名 解决uni

解决uni

2024-01-21 20:29| 来源: 网络整理| 查看: 265

本次在使用uni.uplodFile()上传图片时,遇到丢失后缀名导致后台服务器无法解析的问题,特此记录

首先放上解决问题前后对比图

解决前:formdata filename属性无后缀

在这里插入图片描述

解决后,filename参数已有后缀,并且为文件名:

在这里插入图片描述

问题如下:

当使用uni-file-picker组件上传图片时,formdata中的filename丢失后缀名,导致后台服务器返回的url无后缀名,图片无法正常显示的问题 在这里插入图片描述 ... /** * @description :上传文件文件回调 * */ handleSelectImage(files){ console.log('select........',files) console.log(this.forms.images) files.tempFiles.map(imgItem =>{ console.log(imgItem) let formdata = new FormData() formdata.append(imgItem.name,imgItem.file) console.log(formdata) uni.uploadFile({ url:'/api/uploadAvatar?sessionId='+uni.getStorageSync('sessionId'), method:'POST', formaData:formdata, success:(res)=> { console.log(res,JSON.parse(res.data)) let data = JSON.parse(res.data) console.log('添加前: ',this.forms.images) this.forms.images = [...this.forms.images,data.data.url] console.log('添加后: ',this.forms.images,data.data.url) } }) }) } 原因: uni.uploadFile()漏掉了2个必填项:

在这里插入图片描述 如官网所示,

name:文件对应的 key , 开发者在服务器端通过这个 key 可以获取到文件二进制内容filePath:要上传文件资源的路径。更多配置见官方文档:uni.uploadFile官方文档 handleSelectImage(files){ console.log('select........',files) console.log(this.forms.images) files.tempFiles.map(imgItem =>{ console.log(imgItem) let formdata = new FormData() formdata.append(imgItem.name,imgItem.file) console.log(formdata) uni.uploadFile({ url:'/api/uploadAvatar?sessionId='+uni.getStorageSync('sessionId'), method:'POST', name:'file', // 必填项 filePath:imgItem.url, //必填项 formaData:formdata, success:(res)=> { console.log(res,JSON.parse(res.data)) let data = JSON.parse(res.data) console.log('添加前: ',this.forms.images) this.forms.images = [...this.forms.images,data.data.url] console.log('添加后: ',this.forms.images,data.data.url) } }) }) } filePath参数:

来自 @select选择文件后的回调参数tempFiles的tempFiles数组中每一个文件对象的url属性 在这里插入图片描述

name参数

默认是字符串"file"



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3