阅读 1005

Element 组件 el-upload 获取上传失败时的返回信息

在处理 el-upload 上传组件在上传失败时可以使用 on-error钩子函数来显示后端返回的错误信息

//html 区域 <el-upload class="upload-demo" ref="upload" :headers="headers" :action="excelUploadApi" :on-change="handleChange" :on-error="handleError" :show-file-list="false"> <el-button slot="trigger" class="filter-item" type="warning" size="small"  icon="el-icon-upload"> 导入按钮 </el-button> </el-upload> //利用 :on-error="handleError" 钩子函数 复制代码

但在打印出返回的err 发现返回的格式不是能简单获取的。我在网上搜索到两种大神的解决方案,在此记录下,以便以后遇到~

image.png

方案一

直接通过 JSON.parse() 去转换 err.message 而不是转换 err

handleError(err, file, fileList) { //上传失败钩子函数     console.log('err', err)     console.log('err', JSON.parse(err.message))     if (file.status == 'fail') {             this.$message.error(JSON.parse(err.message).message)     } } 复制代码

方案二

把错误信息转成字符串,然后去掉" Error: " ,剩下的内容就是个json,然后再转成对象

handleError(err, file, fileList) { //上传失败钩子函数     console.log('err', err)     let myError=err.toString();//转字符串     myError=myError.replace("Error: ","") // 去掉前面的" Error: "     myError=JSON.parse(myError);//转对象     console.log(myError); } 复制代码

在我的项目中使用的部分,手动上传的过程上传成功后显示成功信息

注意在这个地方on-success部分只写方法名即可,不用携带参数 <el-form-item  label="file" :label-width="formLabelWidth">   <el-upload     class="upload-demo"     drag     ref="upload"     action="http://127.0.0.1:5000/upload_user_dict_excel"     :auto-upload="false"     :on-success="success"     :data="{'language':form.language,'type':form.type}">     <i class="el-icon-upload"></i>     <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>   </el-upload> </el-form-item> <el-button type="primary" @click="submitDilog('form')">确 定</el-button> 复制代码

methods

submitDilog(formName){   if(this.add_type){     let data=new FormData()     data.append("language",this.form.language)     data.append("type",this.form.type)     data.append("error",this.form.error)     data.append("suggestions",this.form.suggestions)     data.append("info",this.form.info)     axios.post("http://127.0.0.1:5000/upload_user_dict",data).then(res=>{       alert(res.data.message)     })     this.dialogFormVisible = false     this.form.error="",       this.form.suggestions='',       this.form.info= '',       this.form.type='拼写自定义',       this.form.language='英文'   }else{         //手动提交         this.$refs.upload.submit()         this.dialogFormVisible = false     } } success(response,file,fileList){   alert(response.message) }


作者:waws520
链接:https://juejin.cn/post/7019121700537106445


文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐