A convenience class for temporary files.
- Create temporary file with arbitrary content
- Delete file after use (can be disabled)
- Send file to client, either inline or with save dialog, optionally with custom HTTP headers
- Save file locally
<?php
use mikehaertl\tmp\File;
$file = new File('some content', '.html');
// send to client for download
$file->send('home.html');
// ... with custom content type (autodetected otherwhise)
$file->send('home.html', 'application/pdf');
// ... for inline display (download dialog otherwhise)
$file->send('home.html', 'application/pdf', true);
// ... with custom headers
$file->send('home.html', 'application/pdf', true, [
'X-Header' => 'Example',
]);
// save to disk
$file->saveAs('/dir/test.html');
// Access file name and directory
echo $file->getFileName();
echo $file->getTempDir();
If you want to keep the temporary file, e.g. for debugging, you can set the $delete
property to false:
<?php
use mikehaertl\tmp\File;
$file = new File('some content', '.html');
$file->delete = false;
Default HTTP headers can also be added:
<?php
use mikehaertl\tmp\File;
File::$defaultHeader['X-Header'] = 'My Default';
$file = new File('some content', '.html');
$file->send('home.html');
The $ignoreUserAbort
option (on by default) mitigates an issue where the file
was not deleted if the user closes the connection during a download. Try setting
it to false
if you experience unexpected behavior.