修改上传方法
This commit is contained in:
parent
4f8aae5fb2
commit
144c237e7a
|
|
@ -322,48 +322,169 @@ const submitNum = async () => {
|
|||
})
|
||||
}
|
||||
//上传
|
||||
// 上传图片 - 使用方法二的方式
|
||||
const uploadImg = (item) => {
|
||||
// 检查是否在 Cordova 环境中
|
||||
if (window.cordova) {
|
||||
// Cordova 环境 - 使用方法二的方式
|
||||
navigator.camera.getPicture(
|
||||
(file) => {
|
||||
onCameraSuccess(file, item)
|
||||
},
|
||||
(message) => {
|
||||
console.log('选择图片失败', message)
|
||||
uni.showToast({ title: '选择图片失败', icon: 'none' })
|
||||
},
|
||||
{
|
||||
quality: 50,
|
||||
destinationType: window.Camera.DestinationType.DATA_URL,
|
||||
sourceType: window.Camera.PictureSourceType.SAVEDPHOTOALBUM,
|
||||
}
|
||||
)
|
||||
} else {
|
||||
// 非 Cordova 环境 - 保持原来的 uni.chooseImage 方式作为降级方案
|
||||
uni.chooseImage({
|
||||
count: 1, //图片可选择数量
|
||||
sizeType: ['original', 'compressed'], //original 原图,compressed 压缩图,默认二者都有
|
||||
sourceType: ['album', 'camera',], //album 从相册选图,camera 使用相机,默认二者都有。
|
||||
success: res => {
|
||||
console.log(res)
|
||||
let imgFiles = res.tempFilePaths //图片的本地文件路径列表
|
||||
// imgBeseUrl.value = imgFiles[0]
|
||||
// console.log('本地地址', imgFiles)
|
||||
// console.log('请求地址', baseURL+"/file/upload")
|
||||
uni.uploadFile({
|
||||
// url: baseURL+"/file/upload",//app
|
||||
url: "/file/upload",//h5
|
||||
filePath: imgFiles[0],
|
||||
name: 'file',
|
||||
success: (res) => {
|
||||
res = JSON.parse(res.data)
|
||||
console.log('上传成功', res.code);
|
||||
console.log('上传成功', res.data);
|
||||
if(res.code&&res.code==200){
|
||||
let obj = {
|
||||
name:res.data.name,
|
||||
url:res.data.url
|
||||
}
|
||||
if (!item.bmFileInfos) item.bmFileInfos = []
|
||||
item.bmFileInfos.push(obj)
|
||||
// item.bmFileInfos.value = [obj]
|
||||
uni.showToast({ title: '上传成功', icon: 'none' })
|
||||
}else{
|
||||
// item.bmFileInfos.value = []
|
||||
uni.showToast({ title: '上传失败', icon: 'none' })
|
||||
}
|
||||
},
|
||||
fail: (err) => {
|
||||
console.error('上传失败', err);
|
||||
}
|
||||
});
|
||||
// this.$refs.vForm.clearValidate()
|
||||
}
|
||||
})
|
||||
count: 1,
|
||||
sizeType: ['original', 'compressed'],
|
||||
sourceType: ['album', 'camera'],
|
||||
success: res => {
|
||||
let imgFiles = res.tempFilePaths
|
||||
// 这里可以保持原来的 uni.uploadFile 方式,或者也改为 base64 方式
|
||||
uploadFileTraditional(imgFiles[0], item)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// 相机成功回调
|
||||
const onCameraSuccess = (file, item) => {
|
||||
uploadSignUrl(file, item)
|
||||
}
|
||||
|
||||
// 使用 base64 方式上传
|
||||
const uploadSignUrl = (base64Data, item) => {
|
||||
// 生成随机文件名
|
||||
const fileName = `${generateRandomString(10)}_${Date.now()}.png`
|
||||
|
||||
uni.request({
|
||||
// url: baseURL + "/file/uploadBase64", // app
|
||||
url: "/file/uploadBase64", // h5
|
||||
method: 'POST',
|
||||
data: {
|
||||
base64File: base64Data,
|
||||
fileName: fileName,
|
||||
fileType: 'image/png'
|
||||
},
|
||||
success: (uploadRes) => {
|
||||
// 处理响应数据
|
||||
let responseData = uploadRes.data
|
||||
if (typeof responseData === 'string') {
|
||||
responseData = JSON.parse(responseData)
|
||||
}
|
||||
|
||||
console.log('上传成功', responseData.code)
|
||||
console.log('上传成功', responseData.data)
|
||||
|
||||
if (responseData.code && responseData.code == 200) {
|
||||
let obj = {
|
||||
name: responseData.data.name,
|
||||
url: responseData.data.url
|
||||
}
|
||||
|
||||
if (!item.bmFileInfos) item.bmFileInfos = []
|
||||
item.bmFileInfos.push(obj)
|
||||
uni.showToast({ title: '上传成功', icon: 'none' })
|
||||
} else {
|
||||
uni.showToast({ title: '上传失败', icon: 'none' })
|
||||
}
|
||||
},
|
||||
fail: (err) => {
|
||||
console.error('上传失败', err)
|
||||
uni.showToast({ title: '上传失败', icon: 'none' })
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 传统的文件上传方式(作为降级方案)
|
||||
const uploadFileTraditional = (filePath, item) => {
|
||||
uni.uploadFile({
|
||||
// url: baseURL+"/file/upload", // app
|
||||
url: "/file/upload", // h5
|
||||
filePath: filePath,
|
||||
name: 'file',
|
||||
success: (res) => {
|
||||
res = JSON.parse(res.data)
|
||||
console.log('上传成功', res.code)
|
||||
console.log('上传成功', res.data)
|
||||
if(res.code && res.code == 200){
|
||||
let obj = {
|
||||
name: res.data.name,
|
||||
url: res.data.url
|
||||
}
|
||||
if (!item.bmFileInfos) item.bmFileInfos = []
|
||||
item.bmFileInfos.push(obj)
|
||||
uni.showToast({ title: '上传成功', icon: 'none' })
|
||||
} else {
|
||||
uni.showToast({ title: '上传失败', icon: 'none' })
|
||||
}
|
||||
},
|
||||
fail: (err) => {
|
||||
console.error('上传失败', err)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
const generateRandomString = (length) => {
|
||||
let result = '';
|
||||
const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
||||
const charactersLength = characters.length;
|
||||
for (let i = 0; i < length; i++) {
|
||||
result += characters.charAt(Math.floor(Math.random() * charactersLength));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
// const uploadImg = (item) => {
|
||||
// uni.chooseImage({
|
||||
// count: 1, //图片可选择数量
|
||||
// sizeType: ['original', 'compressed'], //original 原图,compressed 压缩图,默认二者都有
|
||||
// sourceType: ['album', 'camera',], //album 从相册选图,camera 使用相机,默认二者都有。
|
||||
// success: res => {
|
||||
// console.log(res)
|
||||
// let imgFiles = res.tempFilePaths //图片的本地文件路径列表
|
||||
// // imgBeseUrl.value = imgFiles[0]
|
||||
// // console.log('本地地址', imgFiles)
|
||||
// // console.log('请求地址', baseURL+"/file/upload")
|
||||
// uni.uploadFile({
|
||||
// // url: baseURL+"/file/upload",//app
|
||||
// url: "/file/upload",//h5
|
||||
// filePath: imgFiles[0],
|
||||
// name: 'file',
|
||||
// success: (res) => {
|
||||
// res = JSON.parse(res.data)
|
||||
// console.log('上传成功', res.code);
|
||||
// console.log('上传成功', res.data);
|
||||
// if(res.code&&res.code==200){
|
||||
// let obj = {
|
||||
// name:res.data.name,
|
||||
// url:res.data.url
|
||||
// }
|
||||
// if (!item.bmFileInfos) item.bmFileInfos = []
|
||||
// item.bmFileInfos.push(obj)
|
||||
// // item.bmFileInfos.value = [obj]
|
||||
// uni.showToast({ title: '上传成功', icon: 'none' })
|
||||
// }else{
|
||||
// // item.bmFileInfos.value = []
|
||||
// uni.showToast({ title: '上传失败', icon: 'none' })
|
||||
// }
|
||||
// },
|
||||
// fail: (err) => {
|
||||
// console.error('上传失败', err);
|
||||
// }
|
||||
// });
|
||||
// // this.$refs.vForm.clearValidate()
|
||||
// }
|
||||
// })
|
||||
// }
|
||||
const viewImgs = (item) => {
|
||||
if (!item.bmFileInfos || item.bmFileInfos.length === 0) {
|
||||
uni.showToast({ title: '暂无附件', icon: 'none' })
|
||||
|
|
|
|||
Loading…
Reference in New Issue