2017 © Pedro Peláez
 

library tempkit

Implements a server-side strategy for collection and recovery of PSR-7 UploadedFile objects

image

kodus/tempkit

Implements a server-side strategy for collection and recovery of PSR-7 UploadedFile objects

  • Friday, September 8, 2017
  • by mindplay.dk
  • Repository
  • 5 Watchers
  • 2 Stars
  • 52 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 4 Versions
  • 2 % Grown

The README.md

kodus/tempkit

This package implements a server-side strategy for temporary collection and recovery of PSR-7 UploadedFile objects., (*1)

A dedicated FlySystem port is also available., (*2)

PHP Version, (*3)

You can use this service to implement controllers that collect uploaded files posted asynchronously by a browser and return the temporary file UUIDs, then, on completion, recover the uploaded files and move them to permanent storage., (*4)

The filename and MIME-type (as posted by the client) will be preserved., (*5)

Unrecovered files are automatically flushed after a defined expiration period., (*6)

Usage

Bootstrap the service:, (*7)

$service = new TempFileService(__DIR__ . '/temp');

In your asynchronous file post-controller, collect posted files and return UUIDs:, (*8)

$uuids = [];

foreach ($request->getUploadedFiles() as $file) {
    $uuids[] = $service->collect($file);
}

echo json_encode($uuids);

In your form post-controller, recover the collected files:, (*9)

foreach ($uuids as $uuid) {
    $file = $service->recover($uuid);

    // get information about recovered file:

    $filename = $file->getClientFilename();
    $media_type = $file->getClientMediaType();

    // move recovered file into permanent storage:

    $file->moveTo(__DIR__ . '/files/' . $file->getClientFilename());
}

Alternatively, obtain the path to the temporary file and move/copy the file by other means - for example, to import an uploaded file into FlySystem:, (*10)

$file = $service->recover($uuid);

$stream = fopen($file->getTempPath(), "r");

$filesystem->writeStream("uploads/" . $file->getClientFilename(), $stream);

fclose($stream);

$file->flush(); // optionally flush the temporary file after copying

Note that, if you don't flush the temporary file, it will of course be garbage-collected after the defined expiration period., (*11)

Also, if you manually rename or move the temporary file, the JSON meta-data file will be collected and flushed for you immediately when the TempFile instance is destroyed., (*12)

Refer to TempFileService for inline documentation.

The Versions

08/09 2017

dev-master

9999999-dev

Implements a server-side strategy for collection and recovery of PSR-7 UploadedFile objects

  Sources   Download

MIT

The Requires

 

The Development Requires

06/05 2017

1.0.1

1.0.1.0

Implements a server-side strategy for collection and recovery of PSR-7 UploadedFile objects

  Sources   Download

The Requires

 

The Development Requires

05/05 2017

dev-feature/create-temp-path

dev-feature/create-temp-path

Implements a server-side strategy for collection and recovery of PSR-7 UploadedFile objects

  Sources   Download

The Requires

 

The Development Requires

02/05 2017

1.0.0

1.0.0.0

Implements a server-side strategy for collection and recovery of PSR-7 UploadedFile objects

  Sources   Download

The Requires

 

The Development Requires