我有一个.exe,用户必须为我网站上的某个硬件安装该. exe。我当前将此.exe存储在我的storage/app/public文件夹中,并已确保文件和文件夹都具有访问权限。
我已经运行了php artisan storage:link
目前用途:
public function Downloadfile(Request $request)
{
Log::debug("DOWNLOADFILE");
$path = storage_path().'\\app\\public\\'.'file.exe';
Log::debug("Path ".$path);
Log::debug(file_exists($path));
return Storage::download($path);
}
结果如下。
文件存在,正如日志所说,但由于某种原因,当我试图下载它时,我无法这样做。
2条答案
按热度按时间xbp102n01#
storage_path()
函数返回应用程序存储目录的完全限定路径。另外,您还希望返回一个响应,例如,download方法可以生成一个响应,强制用户的浏览器下载给定路径下的文件。
mwg9r5ms2#
我认为你走错了路。你需要摆脱:
在Laravel config/filesystems.php中通常有这样的内容:
所以
公用文件夹中的“storage”符号链接是指向storage/app/public的符号链接。
至少在我的设置中,我的个人资料照片在:public/profile-photos,这些照片的URL是:
因此您可能需要:
C:\Usersxxx.source\repos\xxx\storage\file.exe
你只需要调整一下路径。试试看。