Laravel - 通过超链接打开存储在App目录中的文件?

I've setup my system so each new record created also creates a folder within the storage folder to save related documents such as PDF's.

e.g. app/storage/records/123456/document.pdf

I have the following in my controller:

$files = File::allFiles(app_path().'/storage/records/'.$record->id);

I can then show the path to the documents in the specific folder in my record view with the following:

@foreach($files as $file)
    <div>{{ HTML::link($file, basename($file)) }}</div>
@endforeach

But when I click on the link it appends the app path on to the end of the URL and obviously returns a 404.

How can I set this up to trigger a HTTP download when I click the link?

You will need to create a route to retrieve your file and send it with the appropriate download headers. In Laravel 5, its simplest form is:

// routes.php
Route::get('downloads/{record_id}/{filename}', function ($record_id, $filename)
{
    $headers = [
        // set whatever extra download headers you want here...
    ];
    return response()->download(app_path().'/storage/records/'.$record_id.'/'.$filename, $filename, $headers);
});

You will need to adjust your HTML::link() calls to reflect the downloads route, whatever you choose to call it.