In CRUDs Editor, we have two field types for files - called File and Photo. The difference is pretty small - Photo field has additional validation parameters for image size.
You can read our in-depth tutorial: Multiple File Upload with Dropzone.js and Laravel MediaLibrary Package
As per Laravel Medialibrary functionality, the files are stored by default in storage/app/public folder, dividing every file in its own subfolder with ID number:
By default, storage/ internal folders are not available in the browser for public visitors, to change that - you need to run one important Artisan command:
php artisan storage:link
See more info in the official Laravel documentation: The Public Disk
If you want to change the location of where files are stored, change your parameters in config/filesystems.php file:
'disks' => ['local' => ['driver' => 'local','root' => storage_path('app'),],'public' => ['driver' => 'local','root' => storage_path('app/public'),'url' => env('APP_URL').'/storage','visibility' => 'public',],'s3' => ['driver' => 's3','key' => env('AWS_ACCESS_KEY_ID'),'secret' => env('AWS_SECRET_ACCESS_KEY'),'region' => env('AWS_DEFAULT_REGION'),'bucket' => env('AWS_BUCKET'),'url' => env('AWS_URL'),],],
In the database, filenames for all CRUDs are stores in one DB table media - this is how Laravel Medialibrary works.
This table uses Polymorphic Relations to tie the media record to the CRUD Model it belongs to - see columns model_type and model_id.
We can't ensure that all file uploads settings will be correct on your web-server. So if something doesn't work on your web-server after download, check out this guide on our blog: Top 5 Questions/Answers About Spatie MediaLibrary - it answers these questions:
Where are my files stored?
Why are my files not shown? 404 error?
How to generate/customize thumbnails?
How to query Media relationships in Eloquent?
Why artisan migrate doesn’t work with MediaLibrary?
Another article related to potential file/photo problem:
If you want to save disk space, here's an article for you: