可以先看 只有上传图片的
js完整demo https://blog.csdn.net/qq_42221334/article/details/84827369
vue 完整demo https://blog.csdn.net/qq_42221334/article/details/93198417
参考上传图片 添加了canvas 方法压缩图片,判断图片宽度大于1000时 进行压缩
methods: {//传图xmTanUploadImg(){var that=thisvar obj=document.getElementById("xdaTanFileImg");//获取元素的domvar file = obj.files[0]; var reader = new FileReader();reader.onload = function (e) {// 此处 e.target.result 能获取图片 不压缩时直接赋值给图片的src即可//此处为压缩图片方法let image = new Image() //新建一个img标签(还没嵌入DOM节点)image.src = e.target.resultimage.onload = function() {var canvas = document.createElement('canvas'), context = canvas.getContext('2d');var x=image.width/1000; //压缩倍数if(image.width>1000){var imageWidth = image.width / x; //压缩后图片的大小var imageHeight = image.height / x;}else{var imageWidth = image.width / 1; //不进行压缩大小var imageHeight = image.height / 1;}var data = ''canvas.width = imageWidthcanvas.height = imageHeightcontext.drawImage(image, 0, 0, imageWidth, imageHeight)data = canvas.toDataURL('image/jpeg')//压缩完成 var img = document.getElementById("avarimgs"+num);//获取图片idimg.src = data;//给图片src路径赋值//此处为上传图片到服务器 所传图片值为datavar baseUrl = process.env.API_ROOT;var formData = new FormData();formData.append("source", 3);formData.append("base64_image", data);axios.post(baseUrl + "apiyd/base/uploadBase64ImgInfo", formData) .then(res => {if (res.data.code == 1000) {that.formList.company_pics=res.data.data.image_url} else {$.toast(res.data.message, "text");}});}}reader.readAsDataURL(file)},
}
更多技巧请查看vue专栏 https://blog.csdn.net/qq_42221334/column/info/27230/1