You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用window.URL.createObjectURL新标签打开PDF时如何设置自定义文件名

自定义Blob URL打开PDF的文件名实现方案

window.URL.createObjectURL() 生成的是浏览器临时内存地址,默认路径为自动生成的UUID,无法直接修改地址本身来实现自定义文件名,可通过在新标签页嵌入PDF的方式实现需求,无需触发文件下载:

可用实现代码

// 替换为你需要的自定义文件名
const CUSTOM_PDF_NAME = "自定义文件名.pdf";
const blobUrl = window.URL.createObjectURL(newBlob);
// 打开新标签页
const pdfWindow = window.open();
// 向新标签页写入包含PDF嵌入逻辑的HTML,同时设置页面标题为自定义文件名
pdfWindow.document.write(`
<!DOCTYPE html>
<html>
<head>
  <title>${CUSTOM_PDF_NAME}</title>
  <style>
    * { margin: 0; padding: 0; }
    body, embed { width: 100%; height: 100vh; border: none; }
  </style>
</head>
<body>
  <embed type="application/pdf" src="${blobUrl}" />
</body>
</html>
`);
pdfWindow.document.close();
// 标签页关闭时释放Blob地址,避免内存泄漏
pdfWindow.addEventListener('unload', () => {
  window.URL.revokeObjectURL(blobUrl);
});

注意事项

  • 生成Blob时需要正确设置MIME类型为application/pdf,否则浏览器可能不会直接渲染PDF而是触发下载,示例:
    const newBlob = new Blob([pdf文件流], { type: 'application/pdf' });
    
  • 该方案兼容性覆盖所有主流浏览器,标签页标题会显示你设置的自定义文件名,用户点击PDF自带的下载按钮时,默认保存文件名也会沿用该自定义名称。

内容的提问来源于stack exchange,提问作者Nitesh yadav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 23:24:04