Reputation: 15057
When we do something like this:
Storage::disk('local')->put('file.txt', 'Contents');
How do you make a link to that file in a view? Something like this:
<a href="path_to_file.txt">Download File</a>
there are so many things in documentation and yet not even one example how to create a link to that file
Upvotes: 6
Views: 44123
Reputation: 57
Scenario--(working from a fresh Laravel 5.6 project install for reference): With the existing default paths being /public and /storage/app/public and you want to physically store your logo.png image in the /storage folder and render it on your Welcome page, the process would go something like this:
php artisan storage:link
In your project's welcome.blade.php under /resources/views paste the following code over the existing code:
<div class="content">
<div class="title m-b-md">
Laravel
<div>
<a href="/">
<img src="{{url('/storage/images/logo.png')}}" alt="Logo Image"/>
</a>
</div>
</div>
</div>
Save and open your project in your browser and you should see the logo image.
Having said all of that, later on you need a pdf folder to store uploaded pdf files. Easy, just create a new folder in /storage/app/public called /pdf and automatically the shortcut will appear in the /public folder. It is a once and "for all" solution.
Upvotes: 2
Reputation: 173
Try this command on your terminal : php artisan storage:link, then laravel storage become public access.
<a href="{{url('/')}}/{{ Storage::disk('local')->url('file.txt')}}">Download File</a>
Upvotes: 9
Reputation: 13709
UPDATE:
According to laravel docs, You can get the URL to the file like this:
use Illuminate\Support\Facades\Storage;
$url = Storage::url('file1.jpg');
Remember, if you are using the local driver, all files that should be publicly accessible should be placed in the
storage/app/public
directory. Furthermore, you should create a symbolic link atpublic/storage
which points to thestorage/app/public
directory.
Hope this helps!
Upvotes: 5