1.圖片API
// 查看圖片API previewImage(e) { console.log(e) var _this = this my.previewImage({ //查看圖片的接口 current: e.target.dataset.id, //點擊圖片時顯示的位置,比如我點開第三張圖,顯示的就是3 urls: _this.data.photos, //點擊圖片時顯示的圖片數組,根據current拿到下標顯示對應圖片 }); }, // 調用圖片API chooseImage() {var _this = this if (this.data.photoNum <= 0) { //限制最多幾張圖片,圖片上限了直接終止這個函數,下面的不執行 commonShowToast("none", "最多上傳6張圖片,你已達上限") return; } my.chooseImage({ //調用相機相冊的接口 sourceType: ['album'], //拍照和相冊,安全問題拍照不能使用,只寫相冊 count: _this.data.photoNum, //最多上傳的圖片數 success: (res) => { //成功調用返回的函數 my.compressImage({ //壓縮圖片的接口 apFilePaths: res.apFilePaths, compressLevel: 3, //不壓縮,0-4各對應低、中、高、不壓縮、根據網絡 success: data => { console.log(data); var compressdata = data.apFilePaths console.log("compressdata", compressdata) var photoUrl = compressdata photoUrl.forEach(item => { var fileSize = ''; my.getFileInfo({ //限制文件大小的接口 apFilePath: item, success: (result) => { console.log('fileInfo', result.size) fileSize = result.size console.log('filesize', fileSize) //限制圖片上傳不得大於5MB if (fileSize > 5242880) { console.log('filesize', fileSize) commonShowToast('none', '圖片上傳大小不得超過5MB,請重新上傳') return; } }, });
2.出現的坑
有時網絡不好,還沒傳上去,但是用戶點擊過快,會超出圖片上限
if判斷是否超出長度了,是的話執行
imglist.splice(imglist.length-1,1) //本地圖片地址數組 fileIdList.splice(fileIdList.length-1,1) //服務器圖片地址數組 超出長度時后面的全部刪除
一直找不到解決辦法,只能用蠢的方式來