Paperyard
Public Member Functions | Protected Attributes | Private Member Functions | List of all members
Paperyard\Controllers\Misc\Upload Class Reference

Public Member Functions

 __construct (LoggerInterface $logger)
 
 __invoke (Request $request, Response $response, $args)
 

Protected Attributes

 $logger
 

Private Member Functions

 moveUploadedFile ($directory, UploadedFile $uploadedFile)
 

Detailed Description

Definition at line 11 of file Upload.php.

Constructor & Destructor Documentation

Paperyard\Controllers\Misc\Upload::__construct ( LoggerInterface  $logger)

Definition at line 16 of file Upload.php.

17  {
18  $this->logger = $logger;
19  }

Member Function Documentation

Paperyard\Controllers\Misc\Upload::__invoke ( Request  $request,
Response  $response,
  $args 
)

Definition at line 21 of file Upload.php.

22  {
23  $directory = '/data/scan';
24 
25  $uploadedFiles = $request->getUploadedFiles();
26 
27  // handle multiple inputs
28  foreach ($uploadedFiles as $uploadedFile) {
29  if ($uploadedFile->getError() === UPLOAD_ERR_OK && $uploadedFile->getClientMediaType() == 'application/pdf') {
30  $filename = $this->moveUploadedFile($directory, $uploadedFile);
31  $response->withStatus(200);
32  }
33  }
34  }
moveUploadedFile($directory, UploadedFile $uploadedFile)
Definition: Upload.php:44
Paperyard\Controllers\Misc\Upload::moveUploadedFile (   $directory,
UploadedFile  $uploadedFile 
)
private

Moves the uploaded file to the upload directory and assigns it a unique name to avoid overwriting an existing uploaded file.

Parameters
string$directorydirectory to which the file is moved
UploadedFile$uploadedfile uploaded file to move
Returns
string filename of moved file

Definition at line 44 of file Upload.php.

45  {
46  $extension = pathinfo($uploadedFile->getClientFilename(), PATHINFO_EXTENSION);
47  $basename = bin2hex(random_bytes(8)); // see http://php.net/manual/en/function.random-bytes.php
48  $filename = sprintf('%s.%0.8s', $basename, $extension);
49 
50  $uploadedFile->moveTo($directory . DIRECTORY_SEPARATOR . $filename);
51 
52  return $filename;
53  }

Member Data Documentation

Paperyard\Controllers\Misc\Upload::$logger
protected

Definition at line 14 of file Upload.php.


The documentation for this class was generated from the following file: