当前位置: 首页 > news >正文

Vue 实现通过URL浏览器本地下载 PDF 和 图片

1、代码实现如下:

根据自己场景判断 PDF 和 图片,下载功能可按下面代码逻辑执行

const downloadFile = async (item: any) => {
    try {
        let blobUrl: any;
        // PDF本地下载
        if (item.format === 'pdf') {
            const response = await fetch(item.url); // URL传递进入
            if (!response.ok) {
                throw new Error('本地下载失败!');
            }
            const blob = await response.blob();
            blobUrl = URL.createObjectURL(blob); 
        } else { // 图片下载
            const imageUrl = item.url;
            const response = await fetch(imageUrl); // URL传递进入

            if (!response.ok) {
                throw new Error(`本地下载失败!`);
            }
            const blob = await response.blob();
            blobUrl = URL.createObjectURL(blob);
        }
        //执行下载逻辑
        if (blobUrl) {
            const link = document.createElement("a"); // 创建a标签
            link.href = blobUrl; // 下载链接
            link.download = item.name; // 下载的文件名
            document.body.appendChild(link);
            link.click();
            document.body.removeChild(link); // 下载完成后移除a标签
            URL.revokeObjectURL(blobUrl); // 释放URL对象
        }
    } catch {
        proxy.$message.error('本地下载失败!');
    }
};

2、浏览器效果:

http://www.dtcms.com/a/27363.html

相关文章:

  • Python学习心得常用的内置函数
  • 计算机视觉算法实战——图像合成(主页有源码)
  • 滤波器 | 原理 / 分类 / 特征指标 / 设计
  • js 打开新标签页和关闭标签页
  • 基于Flask的艺恩影片票房分析系统的设计与实现
  • 公证 网络安全
  • UNIX网络编程学习记录4-第三章
  • Apache-CC6链审计笔记
  • AI可信论坛亮点:合合信息分享视觉内容安全技术前沿
  • HMSC联合物种分布模型在群落生态学中的贝叶斯统计分析应用
  • 力扣算法-1
  • 【从0做项目】Java搜索引擎(8) 停用词表 正则
  • python的类与对象。为什么有些东西要用到类和对象。普通的编程方式不行吗?
  • C 位域的作用
  • 【后端】k8s
  • JetBrains 学生认证
  • 大型语言模型训练与优化实战指南(2025最新版)
  • 工业机器视觉的“眼睛”:如何利用镜头获取精准图像
  • 运用python制作一个完整的股票分析系统
  • php 系统命令执行及绕过
  • 【deepseek学习】Top-k Top-p Temperature如何调整
  • 【Python爬虫(21)】从0到1:Python与MySQL的深度融合
  • 【前端学习笔记】Vue3
  • 点击el-dialog弹框跳到其他页面浏览器的滚动条消失了多了 el-popup-parent--hidden
  • 计算机三级网络技术知识汇总【3】
  • matplotlib 如何是的横坐标纵向显示
  • 【postgresql初级使用】逻辑复制是对数据库对象进行复制,非常灵活的完成数据归集与分发
  • 驱动开发系列37 - Linux Graphics 2D 绘制流程(二)- 画布创建和窗口关联
  • AI、Java、C++、C#等技术学习资源链接汇总
  • SpringBoot 排除一些包的注入