Skip to content

文件下载解决方案

需要下载的文件包括图片、视频、软件包等

我做过软件包的和图片的,这里记录图片的方法 要点:

  1. 创建 a 标签后不要插入到 dom 中,直接在 js 里面调用 click 方法
  2. 设置 href 属性时,拼接?response-content-type=application/octet-stream可以避免浏览器另起一个标签页打开该媒体文件
js
const downloadImage = () => {
    let a = document.createElement("a");
    a.href =
        imagePreviewImageList.value[imagePreviewImageIndex.value].url +
        "?response-content-type=application/octet-stream";
    a.download = "图片";
    a.target = "";
    a.click();
    a = null;
};
const downloadImage = () => {
    let a = document.createElement("a");
    a.href =
        imagePreviewImageList.value[imagePreviewImageIndex.value].url +
        "?response-content-type=application/octet-stream";
    a.download = "图片";
    a.target = "";
    a.click();
    a = null;
};

遇到的问题

描述

在沙盒环境、预正式环境下载都没有问题,唯独到了正式环境就不行了,沙盒和预环境是页面是 http 协议,下载链接也是 http 协议,能够正常下载。然而正式环境是 https 协议,下载链接是 http 协议,于是不能下载。

解决

去掉下载链接中的http://或者https://