elementui中el-upload自定义上传方法中遇到的问题

由于el-upload控件中自定义的upload方法在上传文件中是以FormData的格式上传,后台服务器无法解析这种格式的body,所以通过http-request属性自定义了一个上传方法。

<el-upload
    class="upload-demo"
     ref="upload"
    action="http://127.0.0.1:5000/json/import"
    :http-request="myUpload"
    :on-preview="handlePreview"
    :on-remove="handleRemove"
    :on-error="handleError"
    :on-success="handleSuccess"
    :file-list="fileList"
    :auto-upload="false">
    <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
    <el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload">上传到服务器</el-button>
    <div slot="tip" class="el-upload__tip">只能上传json文件,且不超过500kb</div>
</el-upload>
 1 myUpload(content) {
 2     console.log(‘myUpload...‘);
 3     this.$axios({
 4         method: ‘post‘,
 5         url: content.action,
 6         timeout: 20000,
 7         data: content.file
 8     }).then(res => {
 9         content.onSuccess(‘配时文件上传成功‘)
10     }).catch(error => {
11         if (error.response) {
12             // The request was made and the server responded with a status code
13             // that falls out of the range of 2xx
14             content.onError(‘配时文件上传失败(‘ + error.response.status + ‘),‘ + error.response.data);
15         } else if (error.request) {
16             // The request was made but no response was received
17             // `error.request` is an instance of XMLHttpRequest in the browser and an instance of
18             // http.ClientRequest in node.js
19             content.onError(‘配时文件上传失败,服务器端无响应‘);
20         } else {
21             // Something happened in setting up the request that triggered an Error
22             content.onError(‘配时文件上传失败,请求封装失败‘);
23         }
24     });
25 }

这种方式很常见,唯一要注意的点是在上传方法调用后判断结果成功或者失败的时候,需要回调el-upload控件的onSuccess和onError方法,为的是能够复用el-upload原生的一些动作,比如如果成功了,页面上的文件列表会有一个绿勾标记上传成功的文件,如果失败则会把失败的文件从文件列表中删除,如果不回调是没有这些功能的。

原文地址:https://www.cnblogs.com/rucnevermore/p/8302065.html

时间: 2024-10-04 14:44:37

elementui中el-upload自定义上传方法中遇到的问题的相关文章

VUE -- iview table 组件 中使用 upload组件 上传组件 on render 事件不会触发问题

碰到的问题是: upload 组件在 on中写的监听事件不会被触发 在 props 中来监听:==> 原文地址:https://www.cnblogs.com/mafeng/p/11027356.html

springmvc文件上传2中方法

基于前面文章的基础上. 一.准备 需要的jar  二.配置 1.  spmvc-servlet.xml <?xml version="1.0" encoding="UTF-8" ?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" x

java配置ueditor中解决“未找到上传文件”错误提示

ueditor是一个功能十分强大的在线文本编辑器,但是在ssh框架中,确切的说实在struts2中由于其拦截器需要对request,session对象进行重新封装,这个过程中会把request对象中保存的一些内容清空,所以会导致ueditor的上传功能获取不到需要上传的内容导致“未找到上传文件”的错误! 参考网上资料和自己实验,最终的解决思路是,重写struts2中的一个转换的类,然后配置struts2使用我们重写的这个类.由于我们的工程中可能会有其他的上传等功能,为了不影响其他功能的时候,还需

div中粘贴图片并上传服务器 div中拖拽图片文件并上传服务器

应用简介:此文主要是描述如何在前端div中直接ctrl+v 粘贴图片,并上传到服务器,包括拖拽图片文件到div中 应用场景描述:用QQ或者其它切图软件截图,在指定的div中ctrl+v 粘贴并显示,点击上传按钮,图片上传到服务器.类似实现了此功能的网站有 知乎,强力建议博客园实现此功能,                     写博客时插入图片方便的多. 适用环境:本代码目前适用谷歌浏览器,其它浏览器需要稍微改良一下即可,问题不大. 开发环境:vs2015 mvc 不说废话了,开始吧: 1:首先

SpringMVC中的多文件上传

这是用的是SpringMVC-3.1.1.commons-fileupload-1.2.2和io-2.0.1 首先是web.xml <?xml version="1.0" encoding="UTF-8"?>   <web-app version="2.5"        xmlns="http://java.sun.com/xml/ns/javaee"        xmlns:xsi="http

Java项目中的下载 与 上传

使用超级链接下载,一般会在浏览器中直接打开,而不是出现下载框 如果要确保出现下载框下载文件,则需要设置response中的参数: 1是要设置用附件的方式下载 Content-Disposition: attachment; filename = 2要设定内容的MIME类型 Content-Type:application/x-msdownload 下载的页面代码: <!DOCTYPE html> <html> <head> <meta charset="

解决使用elementUI框架el-upload跨域上传时session丢失问题

解决方法一: 1.使用elementUI框架el-upload跨域上传时,后端获取不到cookie,后端接口显示未登录,在添加了 with-credentials="true"后依然不生效 前端会报上面的错误,解决方式:后端把把*号改成httpServletRequest.getHeader("Origin") 解决方法二: 1.把config目录下的index.js文件打开,修改proxyTable属性的设置: 考虑到这个这个目标路径可能需要修改,所以打包后需要单

node.js+react全栈实践-Form中按照指定路径上传文件并

书接上回,讲到“使用同一个新增弹框”中有未解决的问题,比如复杂的字段,文件,图片上传,这一篇就解决文件上传的问题.这里的场景是在新增弹出框中要上传一个图片,并且这个上传组件放在一个Form中,和其他文本字段一起提交给接口. 这里就有几个要注意的问题: 图片上传时最好能在前端指定图片类型,根据这个类型上传到指定的目录.比如这里是新增用户,上传用户图片,那么这里就指定类型是“user”,那么就把这个文件上传到服务器的upload/user目录中.这样方便后期维护,比如要把项目中的文件统一迁移到另外一

Laravel中的日志与上传

PHP中的框架众多,我自己就接触了好几个.大学那会啥也不懂啥也不会,拿了一个ThinkPHP学了.也许有好多人吐槽TP,但是个人感觉不能说哪个框架好,哪个框架不好,再不好的框架你能把源码读上一遍,框架的设计思想理解了也能学到好多东西.况且有好多东西自己还不理解,所以认真学习一个框架这还是可以学不少东西的. 还是先说说Laravel吧,现在已经到5.2了.就我自己来说之前没有接触过laravel,但是学习过laravel之后感觉这个框架确实不错,并且老外用的不亦乐乎.他的开发社区还可以,文档比较齐