我的laravel應用程序成功上傳並將我的文件存儲在我想要的位置。但是,我不想將該文件的公共URL存儲在數據庫中,而是將它們動態存儲(它們存儲在我的public
目錄中)並顯示上載鏈接的列表。Laravel - 從字符串路徑獲取文件實例
如何從僅由File::files(public_path() . "/files/uploads");
返回的字符串檢索File對象,以便獲取名稱,大小,修改日期等?
在此先感謝您的幫助!
我的laravel應用程序成功上傳並將我的文件存儲在我想要的位置。但是,我不想將該文件的公共URL存儲在數據庫中,而是將它們動態存儲(它們存儲在我的public
目錄中)並顯示上載鏈接的列表。Laravel - 從字符串路徑獲取文件實例
如何從僅由File::files(public_path() . "/files/uploads");
返回的字符串檢索File對象,以便獲取名稱,大小,修改日期等?
在此先感謝您的幫助!
foreach (File::allFiles($directory) as $file)
{
/* $file should be a Symfony\Component\Finder\SplFileInfo object */
$file->getSize();
$file->getFilename();
$file->getType();
}
Documentation for the SplFileInfo。 (感謝@Bogdan!)
你可以做到以下幾點:
foreach (File::files(public_path() . '/fonts') as $path)
{
File::size($path); // file size
File::name($path); // file name (no extension)
File::extension($path); // file extension
File::mimeType($path); // file mime type
File::lastModified($path); // file last modified timestamp
// and so on...
}
你可以看到Illuminate\Filesystem\Filesystem
類API中所有可用的方法。
Laravel有沒有辦法返回一個File實例對象並執行'$ file-> size()'之類的操作?我認爲這就是OP所要求的。 –
這很好用,儘管有比手動調用這些方法和每次傳遞字符串更好的方法。是否有更簡單的方法來初始化存儲該信息的文件對象(而不是手動構建數組/對象)? –
@ nivixzixer的答案實際上使用對象實例而不是Laravel的靜態外觀,所以這是解決您的問題的更好方法。 – Bogdan
不幸的是,File :: get()返回文件的物理內容,而不是文件路徑中的文件對象。 –
啊。我玩Laravel的File類已經過去了幾個月。 –
File :: allFiles()返回文件絕對路徑的字符串數組,而不是SplFileInfo實例。 –