You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.4 KiB
51 lines
1.4 KiB
4 years ago
|
export default {
|
||
|
/**
|
||
|
* 上传单个文件
|
||
|
* @param {string} url 服务器地址
|
||
|
* @param {object} formData 上传的其他字段
|
||
|
* @param {array} extension 上传文件类型 扩展名数组
|
||
|
* @param {string} name
|
||
|
* @returns
|
||
|
*/
|
||
|
chooseAndUpload(url, formData = {}, extension = ['.xls', '.xlsx'], name = 'param') {
|
||
|
return new Promise((resolve, reject) => {
|
||
|
const token = uni.$t.storage.getStorageSync(uni.$t.app.tokenKey);
|
||
|
if (!token) {
|
||
|
return reject('用户未登录,请登录后重试');
|
||
|
}
|
||
|
uni.chooseFile({
|
||
|
count: 1, //默认100
|
||
|
extension,
|
||
|
success: res => {
|
||
|
uni.uploadFile({
|
||
|
url,
|
||
|
filePath: res.tempFilePaths[0],
|
||
|
name,
|
||
|
formData,
|
||
|
header: { Authorization: `Bearer ${token}` },
|
||
|
success: ({ data, statusCode }) => {
|
||
|
console.log('data, statusCode: ', data, statusCode);
|
||
|
if (statusCode === 200 && data) {
|
||
|
const { code, msg } = JSON.parse(data);
|
||
|
if (code !== 200) {
|
||
|
reject(msg);
|
||
|
} else {
|
||
|
resolve(data.data);
|
||
|
}
|
||
|
} else {
|
||
|
reject('上传失败');
|
||
|
}
|
||
|
},
|
||
|
fail: error => {
|
||
|
reject(error);
|
||
|
},
|
||
|
});
|
||
|
},
|
||
|
fail: error => {
|
||
|
reject(error);
|
||
|
},
|
||
|
});
|
||
|
});
|
||
|
},
|
||
|
};
|