问题描述
希望用户能够按照Laravel site.的指示从Laravel环境中下载文件。
问题:下载文件的弹出窗口未显示。
故障排除:
-
权限已相应设置。
sudo chown -R www-data:www-data storage sudo chmod -R 775 storage
-
已在Firefox和Chrome上进行了测试。
-
启动了Laravel应用,以强制使用新端口。
php artisan serve &
-
该文件存在,我没有收到任何错误。 在按下触发器后,回显文本可见,但是, 确保流程(路由->表单->控制器)正常工作。
-
我已建立链接存储连接described here:
php artisan storage:link
活动:
我下载成功了。我在特征中有一个run方法,该方法触发了其余的特征方法。如果将路由直接设置为下载方法,则它似乎可以工作。不确定为什么会导致从路由调用run方法的问题。
[我的控制器]
public function downloadFile()
{
echo "string";
$filename = 'file.png';
// Test-1
return response()->download(
storage_path(
'/app/public/'. $filename
)
);
// Test-2
// return response()->download(
// public_path(
// 'storage/' . $filename
// )
// );
}
解决方法
如果正在使用,请尝试不使用ajax调用downloadFile()
。