我在config/filesystems.php
文件中创建了一个磁盘
'ftp' => [
'driver' => 'ftp',
'host' => 'ftp.domain.org',
'username' => 'username',
'password' => 'password',
'passive' => true,
'timeout' => 30,
'root' => '/',
'url' => '/'
],
该连接已经过测试并且可以正常工作。在服务器上,此文件存在:
$file_path = "/folder/aaa.txt";
但是我无法下载!在控制器中,我写道:
$file = Storage::disk('ftp')->download($file_path);
return response()->download($file);
这是结果:
Symfony \ Component \ HttpFoundation \ File \ Exception \ FileNotFoundException 文件“ HTTP / 1.0 200 OK缓存控制:无缓存,私有 内容处置:附件; filename = aaa.txt内容长度:0 内容类型:文本/纯文本日期:2020年7月10日,星期五,格林尼治标准时间 不存在
其他问题
不是下载它,而是如何在浏览器中显示相同的文件?在这种情况下,以下代码不起作用:
return response()->file($file_path);
答案 0 :(得分:1)
response()->download($file)
和Storage::download($file)
都将创建一个下载响应,因此您只需要两者之一。由于您的文件位于远程存储中,因此您只需保留以下内容即可:
return Storage::disk('ftp')->download($file_path);
您还可以自定义文件名和标题。您还可以(可能)通过以下方式使文件内联显示:
return Storage::disk('ftp')->download($file_path, 'any.txt', [
'Content-Disposition' => 'inline'
]);