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进行传递,完整代码如下:

js 复制代码
uni.chooseImage({
	count: 1, //默认9
	sizeType: ['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'
					})
				}
			})
	}
})

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

相关推荐
云空12 分钟前
《解锁 Python 数据挖掘的奥秘》
开发语言·python·数据挖掘
奥顺互联V14 分钟前
一次性部署:使用Docker部署PHP应用
大数据·mysql·开源·php
青莳吖23 分钟前
Java通过Map实现与SQL中的group by相同的逻辑
java·开发语言·sql
Buleall30 分钟前
期末考学C
java·开发语言
重生之绝世牛码32 分钟前
Java设计模式 —— 【结构型模式】外观模式详解
java·大数据·开发语言·设计模式·设计原则·外观模式
小蜗牛慢慢爬行38 分钟前
有关异步场景的 10 大 Spring Boot 面试问题
java·开发语言·网络·spring boot·后端·spring·面试
Algorithm15761 小时前
云原生相关的 Go 语言工程师技术路线(含博客网址导航)
开发语言·云原生·golang
shinelord明1 小时前
【再谈设计模式】享元模式~对象共享的优化妙手
开发语言·数据结构·算法·设计模式·软件工程
Monly211 小时前
Java(若依):修改Tomcat的版本
java·开发语言·tomcat
boligongzhu1 小时前
DALSA工业相机SDK二次开发(图像采集及保存)C#版
开发语言·c#·dalsa