Reputation: 997
My laravel application successfully uploads and stores my files where I want them to. However, I don't want to store the public url of the file in the database, and instead get them on the fly (they're stored in my public
directory) and show a list of links to the uploads.
How can I retrieve File objects from just the strings returned by File::files(public_path() . "/files/uploads");
so I can get the name, size, modified date, etc?
Thanks in advance for any help!
Upvotes: 2
Views: 8477
Reputation: 1651
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. (Thanks @Bogdan!)
Upvotes: 2
Reputation: 44526
You can do the following:
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...
}
You can see all methods available in the Illuminate\Filesystem\Filesystem
class API.
Upvotes: 3