在Laravel中我想从dir获取所有图像,我在获取公共文件夹的路径时遇到问题。
$images = [];
foreach(File::glob('/public/img/uploads/*.*') as $filename) {
$images[] = $filename;
}
如果我使用此函数它不返回任何内容,我也尝试使用public_path()
但返回完整路径,包括我的F:// dir。
答案 0 :(得分:2)
Laravel glob function返回一个数组,其中包含找到的文件的绝对路径。请记住,you need to pass the absolute path in the argument too很重要。
在您的情况下,由于要在公用文件夹中查找文件,因此可以使用@Marcin Orlowski建议的public_path()帮助程序来获取所需的绝对路径;如果您要在其他位置搜索,可以使用其他帮助程序。
因此,在代码中调用glob的正确方法是以下行:
$images = File::glob(public_path() . '/img/uploads/*.*');
但是,可能您不想要绝对路径,而只是相对于公用文件夹的路径。在这种情况下,您可以使用the basename function摆脱绝对路径并添加所需的路径部分:
$images = [];
foreach (File::glob(public_path() . '/img/uploads/*.*') as $filename) {
$images[] = '/img/uploads/' . basename($filename);
}
使用array map代替foreach:
$images = array_map(function($filename) {
return '/img/uploads/' . basename($filename);
}, File::glob(public_path() . '/img/uploads/*.*'));
注意:Laravel Glob是PHP glob() function的包装。
答案 1 :(得分:0)
我在获取公用文件夹的路径时遇到问题。我也尝试使用public_path()但返回完整路径,包括我的F:// dir。
它是manual reads:
BASE_PATH()
获取到根目录的完全限定路径 应用程序安装。config_path()
获取配置的完全限定路径 。目录public_path()
获取完全合格的路径给公众 。目录storage_path()
获取存储的完全限定路径 。目录
HWND
我怀疑你的公共目录是否在你的根文件夹中,这就是你所使用的absolute path指向的内容,因此使用'/public/img/uploads/*.*'
返回的内容 - 更确切地说,没有什么可以打扰它是完全限定的路径。