karelwintersky/arris.php-file-download

A library to help with creating downloads for files in PHP

1.1.0 2023-09-14 22:23 UTC

This package is auto-updated.

Last update: 2024-04-14 23:34:53 UTC


README

A class to help with creating downloads for files in PHP.

Tip

If you can use direct downloads, you should just use them. This class is for providing downloads of files out of PHP, for example if you want to provide a download to a temporarily created file.

Usage

The examples assume, that you have included the namespace:

use Arris\Toolkit\FileDownload;

Create a download for a file on your file system

$fileDownload = FileDownload::createFromFilePath("/path/to/file.pdf");
$fileDownload->sendDownload("download.pdf");

Create a download for a file via file pointer

$file = /* your file, somewhere opened with fopen() or tmpfile(), etc.. */;
$fileDownload = new FileDownload($file);
$fileDownload->sendDownload("download.pdf");

Create a download for a file via content

$content = "This is the content of the file:";
$fileDownload = FileDownload::createFromString($content);
$fileDownload->sendDownload("download.txt");

For example, you can create downloads for PDF files, generated by Zend (or any other library):

$pdf = new Zend_Pdf();
$page = $pdf->newPage(Zend_Pdf_Page::SIZE_A4);
$pdf->pages[] = $page;

/* draw content in the pdf ... */

$fileDownload = FileDownload::createFromString($pdf->render());
$fileDownload->sendDownload("download.pdf");

NB

Если в методе sendDownload() опустить имя файла - оно будет равно имени файла, которое передали конструктору.

Есть нюанс: если файл создается из строки: createFromString() - отсутствие аргумента в sendDownload() предписывает скачать файл с пустым именем. Последствия неизвестны.