Osa*_*med 5 download laravel reactjs
我有一个使用 Laravel 创建的 Restful API,这个 API 是这样的:
http://127.0.0.1:8000/api/file/pdf/{id}
Run Code Online (Sandbox Code Playgroud)
这是我的下载代码:
public function pdfDownload($id){
$pdf = Cv::findOrfail($id);
return Storage::download('public/pdf/'.$pdf->pdf);
}
Run Code Online (Sandbox Code Playgroud)
它在邮递员和浏览器中工作,它是直接下载文件,但是使用react.js,它不起作用,这是我在react中的代码:
pdfDownload = (id) => {
fetch(' http://127.0.0.1:8000/api/file/pdf/' + id, {
method: 'get',
headers: {
Accept: 'application/octet-stream',
'Content-Type': 'application/octet-stream'
}
}).then((res) => res.json());
};
Run Code Online (Sandbox Code Playgroud)
我在按钮中调用这个函数,如下所示:
<Button color="primary" onClick={() => this.pdfDownload(data.id)}>
Download
</Button>
Run Code Online (Sandbox Code Playgroud)
id 已更正,我确信这一点,我的问题是单击此按钮时如何下载文件..比...
Aja*_*ayK 11
XHR 调用不能触发文件下载,浏览器处理它的方式。您必须自己使用 javascript 代码模拟文件下载,使用如下所示:
const url = window.URL.createObjectURL(new Blob([response.data]));
const link = document.createElement('a');
link.href = url;
link.setAttribute('download', 'file.pdf');
document.body.appendChild(link);
link.click();
Run Code Online (Sandbox Code Playgroud)
或者使用 File Saver 包,如果你不介意额外的依赖。
归档时间: |
|
查看次数: |
18906 次 |
最近记录: |