[TASK] Inital State
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
use Psr\Http\Message\ResponseInterface as Response;
|
||||
use Psr\Http\Message\ServerRequestInterface as Request;
|
||||
use Slim\Psr7\Stream;
|
||||
use Slim\Psr7\UploadedFile;
|
||||
use Slim\Routing\RouteCollectorProxy;
|
||||
|
||||
$app->get('/', function (Request $request, Response $response, $args) {
|
||||
return $this->get('view')->render($response, 'frontend.html', []);
|
||||
})->setName('frontend');
|
||||
|
||||
$app->group('/api', function (RouteCollectorProxy $group): void {
|
||||
$group->post('/artikel', function (Request $request, Response $response, $args) {
|
||||
$directory = $this->get('upload_directory');
|
||||
$uploadedFile = $request->getUploadedFiles()['articles'];
|
||||
|
||||
if ($uploadedFile->getError() === UPLOAD_ERR_OK) {
|
||||
$filename = moveUploadedFile($directory, $uploadedFile);
|
||||
$response->write('uploaded ' . $filename . '<br/>');
|
||||
}
|
||||
|
||||
return $response;
|
||||
});
|
||||
|
||||
$group->get('/artikel/theater', function (Request $request, Response $response, $args) {
|
||||
$file= __DIR__ . '/../data/articles.theater.json';
|
||||
$fh = fopen($file, 'rb');
|
||||
|
||||
$stream = new Stream($fh);
|
||||
|
||||
return $response
|
||||
->withHeader('Content-Type', 'application/json')
|
||||
->withBody($stream);
|
||||
});
|
||||
|
||||
$group->post('/inventur', function (Request $request, Response $response, $args) {
|
||||
$directory = $this->get('upload_directory');
|
||||
|
||||
$uploadedFile = $request->getUploadedFiles()['file'];
|
||||
|
||||
if ($uploadedFile->getError() === UPLOAD_ERR_OK) {
|
||||
$filename = moveUploadedFile($directory, $uploadedFile);
|
||||
$response->getBody()->write('uploaded ' . $filename . '<br/>');
|
||||
}
|
||||
|
||||
return $response;
|
||||
});
|
||||
});
|
||||
|
||||
/**
|
||||
* Move Uploaded File to Target Destination
|
||||
*
|
||||
* Create random hexName
|
||||
*
|
||||
* @param String $directory Target Direcotry
|
||||
* @param UploadedFile $uploadedFile the File that was uploaded
|
||||
**/
|
||||
function moveUploadedFile(string $directory, UploadedFile $uploadedFile): string
|
||||
{
|
||||
$extension = pathinfo($uploadedFile->getClientFilename(), PATHINFO_EXTENSION);
|
||||
$basename = bin2hex(random_bytes(8)); // see http://php.net/manual/en/function.random-bytes.php
|
||||
$filename = sprintf('%s.%0.8s', $basename, $extension);
|
||||
|
||||
$uploadedFile->moveTo($directory . DIRECTORY_SEPARATOR . $filename);
|
||||
|
||||
return $filename;
|
||||
}
|
||||
Reference in New Issue
Block a user