我是初学者,所以请原谅我使用return File::put($path , $data);
在Laravel上的公共文件夹中创建文件。我使用了来自控制器的这段代码,我需要知道$path
它应该是什么样的值。
答案 0 :(得分:158)
使用public_path()
供参考:
// Path to the project's root folder
echo base_path();
// Path to the 'app' folder
echo app_path();
// Path to the 'public' folder
echo public_path();
// Path to the 'storage' folder
echo storage_path();
// Path to the 'storage/app' folder
echo storage_path('app');
答案 1 :(得分:13)
您可以使用base_path()获取应用程序的基础 - 然后只需将您的公用文件夹添加到该文件夹中:
$path = base_path().'/public';
return File::put($path , $data)
注意:非常小心,允许用户将文件上传到public_html的根目录。如果他们上传自己的index.php文件,他们将接管您的网站。
答案 2 :(得分:10)
我知道这有点晚了,但是如果有其他人遇到这种情况,你现在可以使用public_path();在Laravel 4中,它已被添加到支持文件夹see here中的helper.php文件中。
答案 3 :(得分:4)
从Laravel配置中检索公用文件夹路径的最佳方法是:
$myPublicFolder = public_path();
$savePath = $mypublicPath."enter_path_to_save";
$path = $savePath."filename.ext";
return File::put($path , $data);
没有必要拥有所有变量,但这只是为了说明目的。
希望这有帮助, GRnGC