一:请求头携带token的上传图片
<up-upload :fileList="fileList" @afterRead="afterRead" @delete="deletePic"
name="3" multiple :maxCount="10" :previewFullImage="true"></up-upload>
let token = uni.getStorageSync('token') //token
let hearders = {
//'content-type': 'multipart/form-data',
'Authorization': 'Bearer ' + token,
}
let uploadUrl = "上传url"
let fileList = ref([])
const deletePic = (event) => {
fileList.value.splice(event.index, 1);
updateFormFileId()
};
// 新增图片
const afterRead = async (event) => {
let lists = [].concat(event.file);
let fileListLen = fileList.value.length;
lists.map((item) => {
fileList.value.push({
...item,
status: 'uploading',
message: '上传中',
});
});
for (let i = 0; i < lists.length; i++) {
const result = await uploadFilePromise(lists[i].url);
let item = fileList.value[fileListLen];
fileList.value.splice(fileListLen, 1, {
...item,
status: 'success',
message: '',
url: result,
});
fileListLen++;
}
updateFormFileId()
};
const uploadFilePromise = (url) => {
return new Promise((resolve, reject) => {
let a = uni.uploadFile({
url: uploadUrl, // 仅为示例,非真实的接口地址
filePath: url,
name: 'file',
formData: {},
header: hearders,
success: (res) => {
let resData = JSON.parse(res.data)
//form.fileId += resData.data.id + ","
setTimeout(() => {
resolve(resData.data.id);
}, 1000);
},
});
});
};
const updateFormFileId = () => {
const successIds = fileList.value
.filter(item => item.status === 'success' && item.url)
.map(item => item.url);
form.fileId = successIds.join(',');
};
唯一的不同可能就是上传成功的处理逻辑了,这里需要调整一下
二:打包需要勾选权限