关于formdata:vue-上传图片判断大小尺寸

uploadImg(e, record, index) { const file = e.target.files[0]; // 判断上传图片的大小 限度 if (file.size / 1024 < 1000) { const that = this; let imgWidth = ""; let imgHight = ""; // 限度图片的尺寸 为2000*1500 const isSize = new Promise(function(resolve, reject) { const _URL = window.URL || window.webkitURL; const img = new Image(); img.onload = function() { imgWidth = img.width; imgHight = img.height; const valid = img.width === parseInt(2000) && img.height === parseInt(1500); valid ? resolve() : reject(); }; img.src = _URL.createObjectURL(file); }).then( () => { const formData = new FormData(); formData.append("files", file); that.loading = true; // 这里是调取接口 接口名字(formData) .then(res => { // 接口胜利操作啥的 that.$message.success("图片上传胜利"); }) .finally(() => { that.loading = false; }); }, () => { // 图片尺寸不对 提醒 this.$message.info( `图片尺寸应为2000x1500,以后图片尺寸为${imgWidth}x${imgHight}` ); return Promise.reject(); } ); } else { this.$message.info("图片最大1000k"); }}

June 7, 2021 · 1 min · jiezi

vue-formData上传图片以及其他表单数据

formData可以实现图片上传,但是如果在上传图片的同时也要上传其他数据呢? 且其他数据不通过对象方式传给后台,而是依然通过json数据格式传递 代码如下: submitBtn () { let formData = new FormData() formData.append("file",this.file)//图片 let params = { contentId: this.pictureId, description: this.detailForm.desc, }//其他数据 formData.append('contentId',params.contentId)//json格式上传 formData.append('description',params.description) maintain.addFasMaintainInfoRecord(formData)//上传接口 .then((res) => { this.$Message.success('添加成功') }) .catch((err) => { this.$Message.error('添加失败') }) },

June 10, 2019 · 1 min · jiezi

Vue 使用 formData 方式向后台发送数据

基本使用方式template <input class=“file” name=“file” type=“file” accept=“image/png,image/gif,image/jpeg” @change=“update”/>JavaScriptupdate (e) { let file = e.target.files[0] // console.log(file) let param = new FormData() // 创建form对象 param.append(‘file’, file, file.name) // 通过append向form对象添加数据 param.append(‘id’, this.$store.state.userId) // 添加form表单中其他数据 // withCredentials: true 使得后台可以接收表单数据 跨域请求 const instance = axios.create({ withCredentials: true }) // url为后台接口 instance.post(‘url’, param) .then(this.succ) // 成功返回信息 调用函数 函数需自己定义,此处后面省略 .catch(this.serverError) // 服务器错误 调用对应函数 函数需自己定义,此处后面省略}2. 美化 input file 按钮 (拓展)思路:简单粗暴地隐藏:opacity: 0;在 <input class=“file”> 元素节点的位置上创建一个好看的元素节点,比如img将 <input class=“file”> 元素的z轴变高,使得其覆盖<img/> :z-index: 5;因为 <input class=“file”> 是透明的,那么我们就只看见它同xy上的好看的<img />点击这个好看的<img /> 其实是点击了它上层的表单以上思路可以实现点击用户头像,通过表单上传更换头像

April 13, 2019 · 1 min · jiezi