You will serve the files from a route. For example, if you wanted someone to have access to a PDF stored in your storage directory, you'd use this route:
Route::get('/pdfs/something', [
'as' => 'pdf',
'uses' => 'PdfController@viewPdf'
];
And in your controller:
function viewPdf($id)
{
$filename = storage_path() . "/pdfs/$id.pdf";
$headers = array(
'Content-type' => 'application/pdf',
'Content-Disposition' => 'inline; filename="' . $filename . '"'
);
return Response::make( file_get_contents($filename), 200, $headers);
}
Now you can do this in your view:
<a href="{{ route('pdf', 1) }}">open PDF</a>
It would work the same way with just about any other type of file.