114

我是这里的初学者,所以请原谅我使用这个问题return File::put($path , $data);在 Laravel 的公共文件夹中创建一个文件。我使用了控制器中的这段代码,我需要知道它的值$path应该如何。

4

5 回答 5

272

利用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');
于 2014-05-02T00:07:26.797 回答
22

您可以使用 base_path() 来获取应用程序的基础 - 然后只需将您的公用文件夹添加到其中:

$path = base_path().'/public';
return File::put($path , $data)

注意:允许人们将文件上传到您的 public_html 根目录时要非常小心。如果他们上传自己的 index.php 文件,他们将接管您的网站。

于 2013-02-12T16:43:13.810 回答
14

我知道这有点晚了,但是如果其他人遇到这种情况,您现在可以使用 public_path(); 在 Laravel 4 中,它已添加到 support 文件夹中的 helper.php 文件中,请参见此处

于 2013-05-05T15:29:25.013 回答
8

从 Laravel 配置中检索公用文件夹路径的最佳方法是使用以下函数:

$myPublicFolder = public_path();
$savePath = $mypublicPath."enter_path_to_save";
$path = $savePath."filename.ext";
return File::put($path , $data);

没有必要拥有所有变量,但这只是为了演示目的。

希望这会有所帮助,GRnGC

于 2014-02-27T14:06:07.570 回答
0

我认为您正在寻找的是asset(''); 创建符号链接后,您可以使用asset('storage')。

于 2021-10-26T19:01:30.553 回答