vue之H5表单文件上传

9 篇文章 0 订阅

1.html

<input type="file" accept="image/*" ref="fileToUpload" name="fileToUpload" id="fileToUpload" style="opacity: 0" @change="uploadFile"/>

2.js

export default {
  name: 'headImg',
  components: {},
  data () {
    return {
      avatarUrl: 'http://******', // 文件上传路径
      avatarSize: 2097152, // 2M,文件上传大小
    };
  },
  created () {},
  methods: {
    /* 上传 */
    uploadFile () {
      let file = this.$refs.fileToUpload.files[0];
      if (file.size > this.avatarSize) { // 文件大小超出限制
        ......
      } else {
        let fd = new FormData();
        fd.append('avatar', this.$refs.fileToUpload.files[0]);

        let xhr = new XMLHttpRequest();
        xhr.addEventListener('progress', this.uploadProgress, false);
        xhr.addEventListener('load', this.uploadComplete, false);
        xhr.addEventListener('error', this.uploadFailed, false);
        xhr.addEventListener('abort', this.uploadCanceled, false);
        xhr.open('POST', this.avatarUrl);
        xhr.send(fd);
      }
    },
    uploadProgress (evt) {
      console.log('上传中', evt);
    },
    uploadComplete (evt) {
      console.log(evt); // 获取上传成功后返回的结果
    },
    uploadFailed (evt) {
      console.log('上传失败', evt);
    },
    uploadCanceled (evt) {
      alert('上传取消');
    }
  }
};

3.该过程中遇到一个413报错,该报错的原因是:

        前端和后台设置的最大限制都是2M,内部服务器后来也修改为4M上传大小,但是还是报错。

        最后发现外网进入内网限制了上传大小为1M,我所使用的文件上传路径是外网路径。。。修改了外网限制后则正常。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mosowe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值