Upload – download files

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