nextjs前端下载文件代码
时间: 2023-10-01 18:10:21 浏览: 245
你可以使用 JavaScript 的 fetch API 来下载文件。下面是一个使用 Next.js 的例子:
```javascript
import React from 'react';
import { useRouter } from 'next/router';
const DownloadFile = () => {
const router = useRouter();
const downloadFile = async () => {
const response = await fetch('/api/download');
const blob = await response.blob();
const url = window.URL.createObjectURL(new Blob([blob]));
const link = document.createElement('a');
link.href = url;
link.setAttribute('download', 'filename.ext');
document.body.appendChild(link);
link.click();
};
return (
<button onClick={downloadFile}>Download File</button>
);
};
export default DownloadFile;
```
在上面的代码中,`/api/download` 是你的后端 API 端点,它返回一个文件。
在 `downloadFile` 函数中,我们使用 `fetch` 方法从后端 API 获取文件,并将其转换为 Blob 对象。然后,我们创建一个 URL 对象来表示该 Blob 对象的 URL。接下来,我们创建一个链接元素,并将其设置为下载链接,然后将其添加到 DOM 中,并模拟单击该链接以触发下载。
注意,这个例子仅适用于下载文件的情况,当你需要上传文件时,你需要使用其他方法来处理上传文件的代码。
阅读全文