nzo/file-downloader-bundle

The NzoFileDownloaderBundle is a Symfony Bundle used to Download all types of files from servers and Web applications safely and with ease. You can also read/show the file content in the Web Browser.

Maintainers

👁 nayzo

Package info

github.com/NAYZO/NzoFileDownloaderBundle

Issues

Type:symfony-bundle

pkg:composer/nzo/file-downloader-bundle

Statistics

Installs: 19 823

Dependents: 0

Suggesters: 0

Stars: 8

v4.3.0 2024-10-08 16:32 UTC

Requires

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT 50e4eed627a78aaf7737c1d2acedb2f1295c191d

  • Ala Eddine Khefifi <alakfpro.woop@gmail.com>

symfonyfilebrowserbundleuploaddownloadshowreaddownloader

This package is auto-updated.

Last update: 2026-06-08 20:07:39 UTC


README

👁 tests
👁 Total Downloads
👁 Latest Stable Version

The NzoFileDownloaderBundle is a Symfony Bundle used to Download all types of files from servers and Web application projects safely and with ease. You can also read/show the file content in the Web Browser.

Features include:

  • This version of the bundle is compatible with Symfony >= v4.4
  • Read/Show the file content in the Web Browser.
  • Download all types of files from the Symfony public folder or from a custom path.
  • Change the name of the file when downloading.
  • Download Files From Url
  • Get Files Extension From Url

Installation

Through Composer:

$ composer require nzo/file-downloader-bundle

Register the bundle in config/bundles.php (without Flex)

// config/bundles.php

return [
 // ...
 Nzo\FileDownloaderBundle\NzoFileDownloaderBundle::class => ['all' => true],
];

Usage

Read / Show the file content in the Web Browser:

use Nzo\FileDownloaderBundle\FileDownloader\FileDownloader;

class MyController extends AbstractController
{
 private $fileDownloader;

 public function __construct(FileDownloader $fileDownloader)
 {
 $this->fileDownloader = $fileDownloader;
 
 // without autowiring use: $this->get('nzo_file_downloader')
 }

// In this examples the "myfile.pdf" file exist in "public/myfolder/myfile.pdf".

 public function readFilesFromPublicFolder()
 {
 return $this->fileDownloader->readFile('myfolder/myfile.pdf');
 }

 // Absolute PATH:

 public function readFilesFromAbsolutePath()
 {
 return $this->fileDownloader->readFileFromAbsolutePath('/home/user/myfile.pdf');
 }
} 

Download the Files:

 public function downloadFileFromPublicFolder()
 {
 return $this->fileDownloader->downloadFile('myfolder/myfile.pdf');

 # change the name of the file when downloading:

 return $this->fileDownloader->downloadFile('myfolder/myfile.pdf', 'newName.pdf');
 }


 // Absolute PATH:

 public function downloadFilesFromAbsolutePath()
 {
 return $this->fileDownloader->downloadFileFromAbsolutePath('/home/user/myfile.pdf');

 # change the name of the file when downloading:

 return $this->fileDownloader->downloadFileFromAbsolutePath('/home/user/myfile.pdf', 'newName.pdf');
 }
} 
Download Files from URL:
 public function downloadFileFromUrl(string $url, string $pathWhereToDownloadTheFile, ?string $customUserAgent = null)
 {
 $headers = ['Authorization: Basic auth'];
 
 $response = $this->fileDownloader->downloadFileFromUrl($url, $pathWhereToDownloadTheFile, $headers, /** You can pass an optional custom User-Agent as third argument ($customUserAgent) */);
 
 if (false !== $response) {
 // File downloaded successfully !
 } else {
 // Error occurred ! 
 } 
 }
Get Files Extension From URL:
public function getFileExtensionFromUrl(string $url)
{
 $fileExtension = $this->fileDownloader->getFileExtensionFromUrl($url);

 if (null === $fileExtension) {
 // Error occurred ! 
 }
}
Download a Symfony StreamedResponse:
 use Symfony\Component\HttpFoundation\StreamedResponse;

 // ...

 public function downloadStreamedResponse()
 {
 $streamedResponse = new StreamedResponse();
 // ...

 $fileName = 'someFileName.csv';

 return $this->fileDownloader->downloadStreamedResponse($streamedResponse, $fileName);
 }

License

This bundle is under the MIT license. See the complete license in the bundle:

See Resources/doc/LICENSE