前端下载url文件(解决PDF, 图片自动在浏览器打开)

常规下载方法:

/* 方法1 */
window.open(下载url地址, '_blank')

/* 方法2 */
const link = document.createElement("a");
link.download = true;
link.href = 下载url地址;
link.click();
document.body.removeChild(link);

pdf文件默认在浏览器中展示解决方案:

一、 更改浏览器设置
在这里插入图片描述
二、通过canvas下载图片

    let image = new Image()
    // 解决跨域 Canvas 污染问题
    image.setAttribute('crossOrigin', 'anonymous')
    image.onload = function () {
        let canvas = document.createElement('canvas')
        canvas.width = image.width
        canvas.height = image.height
        let context = canvas.getContext('2d')
        context.drawImage(image, 0, 0, image.width, image.height)
        let url = canvas.toDataURL('image/png') //得到图片的base64编码数据

        let a = document.createElement('a') // 生成一个a元素
        let event = new MouseEvent('click') // 创建一个单击事件
        a.download = '图片' // 设置图片名称
        a.href = 文件url地址// 将生成的URL设置为a.href属性
        a.dispatchEvent(event) // 触发a的单击事件
    }
    image.src = row.fileUrl

三、通用解决方案(这种主要是让浏览器识别到这个文件的type不是application/pdf,这样浏览器就不会自动在浏览器中打开该文件了)

const link = document.createElement("a");
link.download = /* 文件名 */;
link.href = `${文件URL}?response-content-type=application/octet-stream`;
link.click();
document.body.removeChild(link);

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-10 10:54:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-10 10:54:01       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-10 10:54:01       82 阅读
  4. Python语言-面向对象

    2024-04-10 10:54:01       91 阅读

热门阅读

  1. React中如何实现父组件调用子组件的方法

    2024-04-10 10:54:01       34 阅读
  2. Unity之Unity面试题(四)

    2024-04-10 10:54:01       35 阅读
  3. 无人机空气动力学

    2024-04-10 10:54:01       31 阅读
  4. Linux_CentOS学习笔记

    2024-04-10 10:54:01       37 阅读
  5. LeetCode 671. 二叉树中第二小的节点

    2024-04-10 10:54:01       35 阅读
  6. 蓝桥杯备考随手记: 递归

    2024-04-10 10:54:01       39 阅读
  7. 自动化运维(十七)Ansible 之Kubernetes模块

    2024-04-10 10:54:01       38 阅读
  8. 未来AI技术创业机会

    2024-04-10 10:54:01       39 阅读
  9. CentOS 7详细介绍。

    2024-04-10 10:54:01       38 阅读