programmer1453 storage klasörünü kullanmayarak. storage klasörü dediğiniz public erişim için kullanılan public diski. Hali hazırda bulunan local diski kullanacaksınız, böylece dosyalar dışarıdan ulaşılamayacak bir şekilde yüklenecek (ya da kendiniz bir private disk oluşturabilirsiniz.). Bir controller ile onları dışarı vereceksiniz. Bu şekilde koruyabilirsiniz. Mesela
Route::get('download', DownloadController::class)
->middleware('auth')
->name('download');
public function __invoke(Request $request)
{
$file = $request->input('file');
if(Storage::disk('local')->exists($file)) {
return Storage::disk('local')->download($file);
}
abort(404, __('File not found.'));
}
<!-- https://domain.com/download?file=uploads/pdfs/sample-document.pdf -->
<a href="{{ route('download', ['file' => 'uploads/pdfs/sample-document.pdf']) }}">Download</a>
Burada dosya fiziksel olarak storage/app/uploads/pdfs/sample-document.pdf olacağı için dışarıdan erişilmesi mümkün değil.