您的位置:首页 > 财经 > 金融 > uniapp——上传图片获取到file对象而非临时地址——基础积累

uniapp——上传图片获取到file对象而非临时地址——基础积累

2024/12/23 10:41:20 来源:https://blog.csdn.net/yehaocheng520/article/details/139948916  浏览:    关键词:uniapp——上传图片获取到file对象而非临时地址——基础积累

最近在看uniapp的代码,遇到一个需求,就是要实现上传图片的功能
uniapp 官网地址:https://uniapp.dcloud.net.cn/

上传图片有对应的API:
uni.chooseImage方法:https://uniapp.dcloud.net.cn/api/media/image.html#chooseimage
此方法可以通过【从本地相册选择图片或使用相机拍照】来获取图片的临时地址:
在这里插入图片描述
接口返回的参数有:【tempFilePaths】和【tempFiles】两个
在这里插入图片描述
现在需要将【tempFiles】中的【file】对象上传到后端提供的接口。

然后通过uni.unploadFile将临时地址上传到网络获取网络地址。

但是如果后端不支持临时地址进行上传,仅支持file文档流。

但是经过测试,uni.request是不支持formdata格式的。

所以我这边最后的处理方法,是通过fetch进行传递,完整代码如下:

uni.chooseImage({count: 1, //默认9sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有sourceType: ['album'], //从相册选择success: (res) => {let file = res.tempFiles[0];var formData = new FormData();formData.append('image', file)var requestOptions = {method: 'post',headers: {Authentication: uni.getStorageSync('userToken')},body: formData,};fetch(`${this.$store.state.pathUrl}/member/update_img`,requestOptions).then((response) => {return response.json();}).then(res => {console.log(res);if (res.code == '1000') {uni.showToast({title:res.message,})}else{uni.showToast({title:res.message,icon:'error'})}})}
})

完成!!!多多积累,多多收获!!!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com