per salvare un file inviato tramite form:
$req->validate([
'file' => 'required|mimes:csv,txt,xlx,xls,pdf,jpg,jpeg|max:2048'
]);
$filePath = $req->file('file')->storeAs('uploads', $fileName, 'public');
il file viene caricato nella cartella:
\storage\app\public\uploads
come definito nel file di configurazione:
\config\filesystems.php
per rendere disponibile il file per il download:
php artisan storage:link
crea un link da public/storage
a storage/app/public
come configurato nella sezione links di filesystems.php
il link al file caricato si può generare con:
echo asset('storage/file.txt');
o generare il file come risposta nel controller:
use Illuminate\Support\Facades\Storage;
return Storage::download('file.jpg', $name, $headers);
in questo caso specificando il “nome file” che lo maschera, o forzando diversi headers