uniapp 上传文件 封装方法

Posted 奥特曼 

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uniapp 上传文件 封装方法相关的知识,希望对你有一定的参考价值。

封装: 

import baseURL from './request.js'
import toast,toa from './toast.js'
export const uploadFile = (tempFilePaths,data)=>
	return new Promise((resolve, reject) => 
	toa.loading('上传中..')
	 uni.uploadFile(
			url: baseURL + '/common/upload', //仅为示例,非真实的接口地址
			filePath: tempFilePaths,
			name: 'file',
			formData: ...data,token:uni.getStorageSync('token') || '',
			success: (res) => 
				toa.hideLoading()
				console.log(res);
				if(res.statusCode==200)
					resolve(JSON.parse(res.data).data)
				
			,
			fail:(err)=>
				toa.hideLoading()
				toast(JSON.parse(err.data).msg)
				console.log(err,'上传报错');
				// return 
				reject(err)
			
		)
	)

baseUrl: 基地址 

toast toa 是单独封装的提示  

调用upload方法时可以传入两个参数 第一个是图片路径 第二个是formdata的 其他参数

 使用:

upLoadImg() 
				uni.chooseImage(
					count: 9 - that.imgList.length, //默认9
					sizeType: ['original'], //可以指定是原图还是压缩图,默认二者都有 , 'original','compressed'
					sourceType: ['album'], //从相册选择
					success: async function(res) 
						console.log(JSON.stringify(res.tempFilePaths));
						const tempFilePaths = res.tempFilePaths;
						for (let i = 0; i < tempFilePaths.length; i++) 
							const result = await uploadFile(tempFilePaths[i])
							that.imgList.push(result)
						
					
				);
			,

注意 async await的位置哈 否则会拿不到数据

以上是关于uniapp 上传文件 封装方法的主要内容,如果未能解决你的问题,请参考以下文章

uniapp 接口封装

uniapp 接口封装

uniapp-选择文件时遇到的问题(iOS端)

uniapp封装公共请求typescript版

uniapp封装请求后台接口

uniapp使用ajax上传文件