laravel前后端分离如何下载文件?

public目录下有个aaa.mp4的文件 我想前台点击接口后下载到本地 可是下面这样写试了一下没有反应
我看response返回一大堆乱码 前后端分离的项目是这样返回吗 前台怎么接收呢?

$file = public_path()."/aaa.mp4";
$headers = array('Content-Type: video/mp4');
return response()->download($file,'aaa.mp4',$headers);

返回下面一大堆乱码

@Ð$edtselst6
<mdia mdhd<>UÄ-hdlrvideVideoHandlerçminfvmhd$dinfdrefurl §stbl—stsd‡avc1ÐHHÿÿ1avcCdÿágd¬Ù€´
Àñƒ hé{,‹sttsŸstssû ctts’


















阅读 4k
1 个回答

应该通过接口返回一个下载地址,前端通过 打开新窗口的方式来下载这个文件。
而不是直接使用 xhr 访问 文件,这样会返回文件的二进制流,虽然可以用浏览器 blob 对象来读入保存,但是此等方式造成了额外的资源浪费。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进