el-upload

记录下项目过程中使用el-upload文件上传遇到的一些坑~

一、before-upload方法。

element官方是这样说明的:

微信图片_20220608102140.png

但是要注意1、:auto-upload 为false时是不生效的;
若想实现同样的功能,即判断文件或图片是否符合要求;可在on-change中做相应的操作。
2、: 会出现before-upload返回false时,文件仍然上传成功并展示在了文件列表中,这是因为on-change事件始终都被触发了。
网上寻求办法都是说通过返回promise可以解决,被reject后就会停止上传。(我自测没有生效是因为我的before-upload是在on-change事件里去调用的,原因是on-change事件可以获取到fileList,而before-upload只能拿到当前上传的文件,所以我只能在change事件里去过滤掉不符合规范的文件,为了避免大改项目只能这样子了。)

beforeUpload (file) {
  return new Promise((resolve, reject) => {
    var testmsg=/^image\/(jpeg|png|jpg)$/.test(file.type)
    const isLt2M = file.size / 1024 / 1024 <=2//图片大小不超过2MB
    if (!testmsg) {
      this.$message.error('上传图片格式不对!');
      return reject(false);
    }
    if(!isLt2M) {
      this.$message.error('上传图片大小不能超过 2M!');
      return reject(false);
    }
    return resolve(true)
  });
},

其实不加on-change事件的话,before-upload直接返回false是可以停止上传的。

el-upload上传成功之后不展示状态的解决:

http-request绑定的上传方法必须添加return返回(不加return不好使),并且要返回一个promise对象,不然就会出现file一直是处于ready的状态,即使你是自己在file-list手动赋值success也是会自动变成ready的,而ready状态是不显示成成功状态的。(参考链接:https://zhuanlan.zhihu.com/p/457370276
欢迎各位大佬指导讨论~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容