js a标签下载文件 改变文件类型
时间: 2024-06-08 20:04:22 浏览: 146
在JavaScript中,如果你想让用户通过`<a>`标签下载文件并更改文件类型,你需要设置`href`属性指向你要下载的文件URL,并且添加一个`download`属性,同时可以使用`contentDisposition`头来指定文件名和类型。以下是一个基本的例子:
```javascript
// 假设你有一个名为"data.csv"的数据,实际上存储在服务器上,你想要伪装成PDF(.pdf)
const url = 'http://your-server.com/data.csv';
const fileName = '伪装的文件名.pdf'; // 用户看到的文件名
const mimeType = 'application/pdf'; // 需要改变的文件类型
// 创建a标签
const aElement = document.createElement('a');
// 设置链接属性
aElement.href = url;
aElement.download = fileName;
aElement.setAttribute('target', '_blank'); // 打开新窗口下载
// 使用Blob和URL.createObjectURL生成隐藏的下载链接
const blob = new Blob([`data:text/${mimeType},${encodeURIComponent(fileName)}\n${fetch(url).text()}`], {type: mimeType});
const urlObject = URL.createObjectURL(blob);
// 设置`href`为临时的URL
aElement.href = urlObject;
// 触发点击事件模拟下载
document.body.appendChild(aElement); // 添加到DOM中以触发事件
aElement.click();
document.body.removeChild(aElement); // 删除元素以防止内存泄漏
阅读全文