如何获取公共目录?

Yas*_*ssa 66 laravel laravel-4

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

Jus*_*tin 178

使用 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');
Run Code Online (Sandbox Code Playgroud)

  • @inigo它没有用,你只是没有像预期的那样使用它.如果你想更改公共目录,你需要告诉Laravel:/sf/ask/2223123101/?utm_medium = organic&utm_source = google_rich_qa&utm_campaign = google_rich_qa (7认同)
  • 只是添加`public_path()`实际上实际上是没有用的-它只是假设您所有的公共文件都在一个名为“ public”的目录中-即使它们不是。例如,我总是必须将默认的“ public”目录更改为“ public_html”(与我的服务器一致)。Laravel没有意识到这一点。因此,请勿依靠此来明智地确定您的公共目录实际是什么。我只是在使用$ _SERVER ['DOCUMENT_ROOT'];`,除非有人可以建议我为什么不这样做? (3认同)

Lau*_*nce 15

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

$path = base_path().'/public';
return File::put($path , $data)
Run Code Online (Sandbox Code Playgroud)

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


Bre*_*ent 11

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


小智 8

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

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

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

希望这会有所帮助,GRnGC