downloadBlobFile.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import axios from "axios";
  2. function downloadBlobFile(url, data, name, type, fileType) {
  3. return new Promise((resolve, reject) => {
  4. axios({
  5. method: type,
  6. url,
  7. responseType: "blob",
  8. data,
  9. })
  10. .then((res) => {
  11. if (res.data.size) {
  12. let blob = new Blob([res.data], {
  13. type: fileType,
  14. });
  15. let downloadElement = document.createElement("a");
  16. let href = window.URL.createObjectURL(blob); // 创建下载的链接
  17. downloadElement.href = href;
  18. downloadElement.download = name; // 下载后文件名
  19. document.body.appendChild(downloadElement);
  20. downloadElement.click(); // 点击下载
  21. document.body.removeChild(downloadElement); // 下载完成移除元素
  22. window.URL.revokeObjectURL(href); // 释放掉blob对象
  23. resolve({
  24. status: 0,
  25. });
  26. } else {
  27. resolve({
  28. status: -1,
  29. });
  30. }
  31. })
  32. .catch((e) => {
  33. reject({
  34. status: 1,
  35. });
  36. });
  37. });
  38. }
  39. export default downloadBlobFile;