axios上传下载文件

文件上传
    fileUpload(val) {
      let fd = new FormData();
      fd.append("file", val.file);
      this.$axios
        .post(`userFile/uploadFile`, fd, { timeout: 60000 })
        .then((res) => {
          if (res.data.code == 200) {
            this.$message.success(val.file.name + " 上传成功!");
          } else {
            this.$message.error(val.file.name + " 上传失败!");
          }
        })
        .catch(() => {
          this.$message.error(val.file.name + " 上传失败!");
        });
    },

文件下载
  • 方式一
    download(url, requestData) {
      loadingInstance = Loading.service();
      this.$axios({
        method: "post",
        url: url,
        data: this.$qs.stringify(requestData),
        responseType: "blob",
        timeout: 120000,
      })
        .then((response) => {
          let data = response.data;
          if (!data) {
            return;
          }
          if (data.type === "application/json") {
            var reader = new FileReader();
            reader.readAsText(data, "utf-8");
            let that = this;
            reader.onload = function () {
              that.$message.error(JSON.parse(reader.result)["msg"]);
            };
            return;
          }
          let content_disposition = response.headers["content-disposition"];
          let filename = "file";
          if (content_disposition.indexOf("filename") > -1) {
            filename = content_disposition.split("=")[1].trim();
            filename = decodeURI(escape(filename));
          }
          let url = window.URL.createObjectURL(new Blob([data]));
          let link = document.createElement("a");
          link.style.display = "none";
          link.href = url;
          link.setAttribute("download", filename);
          document.body.appendChild(link);
          link.click();
        })
        .catch((error) => {
          this.$message.error(error.message);
        })
        .finally(() => loadingInstance.close());
    },

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值