Storage (Filesystem)

Удобной настройкой для хранения является следующая:

</> /config/filesystems.php Скопировать
'disks' => [ 'local' => [ 'driver' => 'local', 'root' => storage_path('app/local'), ], 'public' => [ 'driver' => 'local', 'root' => storage_path('app/public'), 'url' => env('APP_URL').'/storage', 'visibility' => 'public', ],

Обращение к файлам

Локально для файла /path_to_website/public/storage/app/local/1.txt
Storage::disk('local')->exists('1.txt')

Публично для файла /path_to_website/public/storage/app/public/1.txt
Storage::disk('public')->exists('1.txt')

Отдать в web файл из локальной папки

</> /routes/web.php Скопировать
Route::get('certificates/certificate/{id}/{image}', [CertificateController::class, 'downloadImage']);
</> CertificateController.php Скопировать
const FILEDIR = "certificates"; public function downloadImage($id, $file){ $path = Storage::disk('local')->path(self::FILEDIR . DIRECTORY_SEPARATOR . $file); // return $path; if (file_exists($path)) { return response()->file($path, array('Content-Type' =>'image/jpeg')); } abort(404); }
Яндекс.Метрика