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

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.kler.cn/a/558335.html

相关文章:

  • 最新版本Exoplayer(MediaX)实现K歌原伴唱包括单音轨和双音轨
  • 网络安全运维服务手册 运维网络安全相关知识
  • 输入搜索、分组展示选项、下拉选取,全局跳转页,el-select 实现 —— 后端数据处理代码,抛砖引玉展思路
  • 【Golang学习之旅】分布式任务队列(使用 RabbitMQ / Kafka)
  • 洛谷P9241 [蓝桥杯 2023 省 B] 飞机降落
  • LeetCode 236.二叉树的最近公共祖先
  • Dfs分布式文件存储
  • MySQL 使用 Performance Schema 定位和解决慢 SQL 问题
  • 2025年Java高级工程师面试题精选:30道高频问题深度解析
  • 宝塔扩容——阿里云如何操作
  • DL/CV领域常见指标术语(FLOPS/mIoU/混淆矩阵/F1-measure)------一篇入门
  • ECharts漏斗图的使用详解
  • docker拉不了镜像,配了加速器也没用
  • 单片机总结【GPIO/TIM/IIC/SPI/UART】
  • Python常见面试题的详解17
  • go 环境准备
  • 【开关电源】汽车前端电源保护电路设计
  • SpringCloud面试题----如何处理微服务架构中的事务一致性问题
  • 大语言模型推理能力从何而来?
  • 什么是手机9008模式?如何进入9008