本文将介绍如何在小程序中获取上传文件的 md5
值。
前端通过 OSS 直接上传选择的照片和视频后,在提交时不仅需要上传生成的资源路径,还需要将对应文件的 MD5 值一并传送到后端。
接下来看看具体实现:
const onUpload = () => {
wx.chooseMedia({
count: 1,
mediaType: ['image', 'video'],
success: async (res) => {
const tempFiles = res.temFiles;
const file = tempFiles[0];
console.log(file);
},
fail: (e) => {
console.error(e);
}
}
}
选择文件时,打印的内容如下:
{tempFilePath: "http://tmp/n1OtvNQzNePb324b6402af201f6b45c7a7de4dd15af5.png", size: 76455, fileType: "image"}
getFileInfo 支持摘要算法为 md5、sha1 , 默认为 md5。
const getMd5 = (templateFile) => {
return new Promise((resolve, reject)=> {
uni.getFileInfo({
filePath: templateFile,
success(res){
resolve(res.digest);
},
reject(err){
reject(err);
}
});
})
}
const getMd5 = (templateFile) => {
return new Promise((resolve, reject)=> {
uni.getFileInfo({
filePath: templateFile,
success(res){
resolve(res.digest);
},
reject(err){
reject(err);
}
});
})
}
const onUpload = () => {
wx.chooseMedia({
count: 1,
mediaType: ['image', 'video'],
success: async (res) => {
const tempFiles = res.tempFiles;
const file = tempFiles[0];
try {
const md5 = await getMd5(file.tempFilePath);
console.log("文件MD5值", md5);
} catch (error) {
console.error("获取文件MD5值失败", error);
}
},
fail: (e) => {
console.error(e);
}
}
}
chooseMedia
方法获取文件。uni.getFileInfo
方法获取文件的 MD5
值,并返回结果如果觉得有用,请点赞、转发和评论支持,谢谢!