CoderFunda
  • Home
  • About us
    • Contact Us
    • Disclaimer
    • Privacy Policy
    • About us
  • Home
  • Php
  • HTML
  • CSS
  • JavaScript
    • JavaScript
    • Jquery
    • JqueryUI
    • Stock
  • SQL
  • Vue.Js
  • Python
  • Wordpress
  • C++
    • C++
    • C
  • Laravel
    • Laravel
      • Overview
      • Namespaces
      • Middleware
      • Routing
      • Configuration
      • Application Structure
      • Installation
    • Overview
  • DBMS
    • DBMS
      • PL/SQL
      • SQLite
      • MongoDB
      • Cassandra
      • MySQL
      • Oracle
      • CouchDB
      • Neo4j
      • DB2
      • Quiz
    • Overview
  • Entertainment
    • TV Series Update
    • Movie Review
    • Movie Review
  • More
    • Vue. Js
    • Php Question
    • Php Interview Question
    • Laravel Interview Question
    • SQL Interview Question
    • IAS Interview Question
    • PCS Interview Question
    • Technology
    • Other

23 February, 2021

Laravel 8 Download File From URL to Public Storage Folder

 Programing Coderfunda     February 23, 2021     Laravel, laravel-tutorial     No comments   

Laravel 8 Download File From URL to Public Storage Folder


 

Laravel 8 download file from url to storage. In this laravel download file from public storage folder example, you will learn how to download or display files from public storage folder in laravel apps.

Download a file in Laravel using a URL to external resource

Follow the below steps and easily download files from public stroage folder. And as well as display files on laravel blade views:

Steps 1: Routes

First of all, you need to add the following routes on web.php file. So navigate to routes folder and open web.php file then update the following routes as follow:

1
2
3
4
5
use App\Http\Controllers\FileController;
 
 
Route::get('view', [FileController::class, 'index']);
Route::get('get/{filename}', [FileController::class, 'getfile']);
Recommended:- Laravel Ajax Multiple Image Upload with Preview

Step 2: Create Controller File

Next, Navigate to app/controllers and create controller file named FileController.php. Then update the following methods as follow:

1
2
3
4
5
6
function getFile($filename){
        $file=Storage::disk('public')->get($filename);
  
        return (new Response($file, 200))
              ->header('Content-Type', 'image/jpeg');
    }

The above code will download files from public storage by giving the file name and return a response with correct content type.

If you want to display files on blade views, so you can update the following methods into your controller file:

1
2
3
4
5
6
7
$files = Storage::files("public");
        $images=array();
        foreach ($files as $key => $value) {
            $value= str_replace("public/","",$value);
            array_push($images,$value);
        }
    return view('show', ['images' => $images]);

The above code gets the image files from the public storage folder and extract the name of these files and you pass them to your view.

Recommended:- Laravel Multiple File Upload With Validation Example

Step 3: Create Blade View

Now, Navigate to resources\view folder. And create one blade view file named show.blade.php. Then update the following code into it:

1
2
3
4
5
6
7
8
@foreach($images as $image)
 
 <div>
    <img src="{{route('getfile', $image)}}"  class="img-responsive" />
 </div>
                  
 
 @endforeach
Recommended:- Laravel Vue JS File Upload Example

In Laravel 5,6,7,8, you can do this for a local file to download it:

1
return response()->download('path/to/file/image.jpg');

There’s no magic, you should download external image using copy() function, then send it to user in the response:

1
2
3
4
5
$filename = 'temp-image.jpg';
$tempImage = tempnam(sys_get_temp_dir(), $filename);
copy('https://my-cdn.com/files/image.jpg', $tempImage);
 
return response()->download($tempImage, $filename);

Note that, if you are getting the following errors in laravel apps, when you are working with laravel files or storage:

1: “class ‘app\http\controllers\file’ not found”.

Import File in your controller file as follow:

use File;

2: “class ‘app\http\controllers\response’ not found”.

Import Response in your controller file as follow:

use Response;

3: “class ‘app\http\controllers\storage’ not found”.

Import Storage in your controller file as follow:

use Illuminate\Support\Facades\Storage;

Conclusion

In this tutorial, you have learned how to download files from public storage folder in laravel apps with example.

Filed Under: Laravel
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg
Email ThisBlogThis!Share to XShare to Facebook
Newer Post Older Post Home

0 comments:

Post a Comment

Thanks

Meta

Popular Posts

  • Vue.js Tutorial
      Vue.js Installation Compatibility Check Before going to install and use Vue.js in your project, you should check the compatibility issues....
  • JqueryUI Tutorial
    JqueryUI Tutorial    JqueryUI is the most popular front end frameworks currently. It is sleek, intuitive, and powerful mobile first fr...
  • Laravel - Application Structure
    The application structure in Laravel is basically the structure of folders, sub-folders and files included in a project. Once we create a ...
  • Python Tutorial
      Python   is a general-purpose interpreted, interactive, object-oriented, and high-level programming language. It was created by Guido van...
  • CSS Online Training
    CSS Online Training CSS is used to control the style of a web document in a simple and easy way. CSS is the acronym for "Casca...

Categories

  • Ajax (26)
  • Bootstrap (30)
  • DBMS (42)
  • HTML (12)
  • HTML5 (45)
  • JavaScript (10)
  • Jquery (34)
  • Jquery UI (2)
  • JqueryUI (32)
  • Laravel (1017)
  • Laravel Tutorials (23)
  • Laravel-Question (6)
  • Magento (9)
  • Magento 2 (95)
  • MariaDB (1)
  • MySql Tutorial (2)
  • PHP-Interview-Questions (3)
  • Php Question (13)
  • Python (36)
  • RDBMS (13)
  • SQL Tutorial (79)
  • Vue.js Tutorial (69)
  • Wordpress (150)
  • Wordpress Theme (3)
  • codeigniter (108)
  • oops (4)
  • php (853)

Social Media Links

  • Follow on Twitter
  • Like on Facebook
  • Subscribe on Youtube
  • Follow on Instagram

Pages

  • Home
  • Contact Us
  • Privacy Policy
  • About us

Blog Archive

  • July (4)
  • September (100)
  • August (50)
  • July (56)
  • June (46)
  • May (59)
  • April (50)
  • March (60)
  • February (42)
  • January (53)
  • December (58)
  • November (61)
  • October (39)
  • September (36)
  • August (36)
  • July (34)
  • June (34)
  • May (36)
  • April (29)
  • March (82)
  • February (1)
  • January (8)
  • December (14)
  • November (41)
  • October (13)
  • September (5)
  • August (48)
  • July (9)
  • June (6)
  • May (119)
  • April (259)
  • March (122)
  • February (368)
  • January (33)
  • October (2)
  • July (11)
  • June (29)
  • May (25)
  • April (168)
  • March (93)
  • February (60)
  • January (28)
  • December (195)
  • November (24)
  • October (40)
  • September (55)
  • August (6)
  • July (48)
  • May (2)
  • January (2)
  • July (6)
  • June (6)
  • February (17)
  • January (69)
  • December (122)
  • November (56)
  • October (92)
  • September (76)
  • August (6)

Loading...

Laravel News

Loading...

Copyright © CoderFunda | Powered by Blogger
Design by Coderfunda | Blogger Theme by Coderfunda | Distributed By Coderfunda