ruvents / spiral-upload
Upload management
Installs: 1 208
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 4
Forks: 0
Open Issues: 0
Requires
- php: ^8.0
- spiral/framework: ^2.8
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16
- league/flysystem-memory: ^2.0
- phpunit/phpunit: ^9.5.10
README
Upload management package with misc helpers.
Installation
composer require ruvents/spiral-upload
Then add UploadBootloader
to your App.php
:
use Ruvents\SpiralUpload\UploadBootloader; class App extends Kernel { protected const LOAD = [ ... UploadBootloader::class, ] }
Configuration
Put the following code into file app/config/upload.php
:
<?php declare(strict_types=1); return [ 'uploadClass' => Upload::class, // Custom UploadInterface implementation class. 'urlPrefix' => 'https://foo.bar/uploads/', // Public URL to uploads. Example: // https://foo.bar/uploads/f8/some-upload.png -- full URL to upload // https://foo.bar/uploads -- URL prefix // f8/some-upload.png -- relative path to upload ];
Use
Use UploadManager
for upload-relative tasks:
public function manageUploads(UploadManager $manager) { // Create upload from file path. $upload = $manager->create('/path/to/file.txt', 'file.txt'); // Create upload from resource. $upload = $manager->create($handle = fopen('/path/to/file.txt', 'r'), 'file.txt'); fclose($handle); // Or from UploadedFileInterface. $stream = clone $uploadedFile->getStream(); $upload = $manager->create($stream->detach(), 'file.txt'); // Get full URL of upload. $url = $manager->url($upload); // Delete stored file associated with upload. $manager->delete($upload); }