Estoy usando laravel 5.4. Subo algún archivo de documento en la carpeta de almacenamiento/aplicación/público/documentos como
$request->paper_file->store('documents');y mi archivo se cargó con éxito.
en el sistema de archivos, el almacenamiento predeterminado es público y la configuración pública es como
'public' => [ 'driver' => 'local', 'root' => storage_path('app/public'), 'url' => env('APP_URL').'/storage', 'visibility' => 'public',],pero cuando presiono /storage/documents/hQqlgifnVVH8bmrRPVdZ9aFGbhLmcc7g7bHZSX4u.pdf dice no encontrado 404. Cómo resolver este problema.
De forma predeterminada, Laravel coloca los archivos en el directorio storage/app/public , al que no se puede acceder desde la web externa. Entonces, debe crear un enlace simbólico entre ese directorio y el público:
storage/app/public -> public/storage
Puede hacerlo ejecutando el comando php artisan storage:link ( docs ).
Este problema me sucedió después de mover el proyecto a una carpeta diferente. Si ya ha generado un enlace de almacenamiento, intente eliminar la carpeta pública/de almacenamiento y vuelva a ejecutar:
php artisan storage:linkEn laravel ^5.8:
php artisan storage:link para vincular storage/app/public con public/storage .ahora:
// this return some like 'public/documents/file.ext' $path = $request->paper_file->store('public/documents'); // this return some like 'storage/documents/file.ext' $publicPath = \Storage::url( $path) ); // this return some like '< APP_URL env variable >/storage/documents/file.ext' $url = asset( $publicPath );