【发布时间】:2018-09-05 09:34:46
【问题描述】:
我想使用 PHP Laravel 从服务器下载 zip 文件。 Laravel 通过以下返回命令传递 zip 文件:
return response()->download($file);
当我在浏览器中点击控制器的路由 URL 时它会下载 zip 文件,当我在 Angular 中使用 window.open(url) 时它也会下载 zip 文件,但它并不安全,因为任何人都可以下载该文件。用户必须在下载文件之前进行身份验证,但我无法使用window.open(url) 传递标头,因此我需要一种不同的方法来实现这一点。
我在这里回答了大部分问题,他们建议使用 FileSaver 和 Blob。我尝试使用这些进行测试,但没有成功,这是因为 API 没有将 zip 文件传递给客户端。
这里是 Angular http.get:
return http.get('localhost:8000/dashboard/backup')
.subscribe(res => {
console.log('Successfull');
}, err => {
console.log(err);
});
我可以获取文件路径,但路径不公开,无法使用 Angular 下载。路径返回为 Application/XAMP.... 当我将其设置为 HREF 并单击它时,它在浏览器中加载为 localhost:4200/Application/XAMP....
在控制台日志中,我在 JSON 文件的第 1 行有一个无效字符。为什么 zip 文件作为 JSON 传递?
【问题讨论】:
-
$http.post('localhost:8000/dashboard/backup', {}, {responseType:'arraybuffer'})
-
@MaihanNijat 嗨,你能评价我的答案吗,我添加了它。
标签: php angular laravel laravel-5