normalizeFiles() public static method

Transforms each value into an UploadedFileInterface instance, and ensures that nested arrays are normalized.
public static normalizeFiles ( array $files ) : array
$files array
return array
Ejemplo n.º 1
0
 public static function fromGlobals(array $server = null, array $query = null, array $body = null, array $cookies = null, array $files = null)
 {
     $server = parent::normalizeServer($server);
     $files = parent::normalizeFiles($files);
     $headers = parent::marshalHeaders($server);
     return new ServerRequest($server, $files, parent::marshalUriFromServer($server, $headers), parent::get('REQUEST_METHOD', $server, 'GET'), 'php://input', $headers, $cookies, $query, $body, self::marshalProtocolVersion($server));
 }
 public function testUpladedFiles()
 {
     $rawFiles = array('file1' => array('name' => 'space-05.jpg', 'type' => 'image/jpeg', 'tmp_name' => '/tmp/2f588692b23b25fdd88f9ad4848dbd17', 'error' => 0, 'size' => 14620), 'myFiles' => array(array('name' => 'space-04.jpg', 'type' => 'image/png', 'tmp_name' => '/tmp/2794797237924797237d88f9ad4848dbd17', 'error' => 0, 'size' => 1620), array('name' => 'space-03.jpg', 'type' => 'image/png', 'tmp_name' => '/tmp/2794797237924797237d88f9ad4848d1237', 'error' => 0, 'size' => 620)));
     $swooleRequest = $this->createSwooleRequest(array(), array(), $rawFiles);
     $request = $this->createTransformer()->transform($swooleRequest);
     $this->assertInstanceOf(ServerRequest::class, $request);
     $files = ServerRequestFactory::normalizeFiles($rawFiles);
     /* @var  ServerRequest $request */
     $this->assertEquals($files, $request->getUploadedFiles());
 }
Ejemplo n.º 3
0
 /**
  * Creates a PSR-7 compatible request
  *
  * @param \TYPO3\Flow\Http\Request $nativeRequest Flow request object
  * @param array $files List of uploaded files like in $_FILES
  * @param array $query List of uploaded files like in $_GET
  * @param array $post List of uploaded files like in $_POST
  * @param array $cookies List of uploaded files like in $_COOKIES
  * @param array $server List of uploaded files like in $_SERVER
  * @return \Psr\Http\Message\ServerRequestInterface PSR-7 request object
  */
 protected function createRequest(\TYPO3\Flow\Http\Request $nativeRequest, array $files, array $query, array $post, array $cookies, array $server)
 {
     $server = ServerRequestFactory::normalizeServer($server);
     $files = ServerRequestFactory::normalizeFiles($files);
     $headers = $nativeRequest->getHeaders()->getAll();
     $uri = (string) $nativeRequest->getUri();
     $method = $nativeRequest->getMethod();
     $body = new Stream('php://temp', 'wb+');
     $body->write($nativeRequest->getContent());
     return new ServerRequest($server, $files, $uri, $method, $body, $headers, $cookies, $query, $post);
 }
Ejemplo n.º 4
0
 /**
  * Creates a PSR-7 compatible request
  *
  * @param \TYPO3\Flow\Http\Request $nativeRequest Flow request object
  * @param array $files List of uploaded files like in $_FILES
  * @param array $query List of uploaded files like in $_GET
  * @param array $post List of uploaded files like in $_POST
  * @param array $cookies List of uploaded files like in $_COOKIES
  * @param array $server List of uploaded files like in $_SERVER
  * @return \Psr\Http\Message\ServerRequestInterface PSR-7 request object
  */
 protected function createRequest(array $files, array $query, array $post, array $cookies, array $server)
 {
     if (!isset($server['HTTP_HOST'])) {
         $server['HTTP_HOST'] = 'localhost';
     }
     $files = ServerRequestFactory::normalizeFiles($files);
     $server = ServerRequestFactory::normalizeServer($server);
     $headers = ServerRequestFactory::marshalHeaders($server);
     $uri = ServerRequestFactory::marshalUriFromServer($server, $headers);
     $method = ServerRequestFactory::get('REQUEST_METHOD', $server, 'GET');
     return new ServerRequest($server, $files, $uri, $method, 'php://input', $headers, $cookies, $query, $post);
 }
 /**
  * {@inheritdoc}
  */
 public function createRequest(Request $symfonyRequest)
 {
     $server = DiactorosRequestFactory::normalizeServer($symfonyRequest->server->all());
     $headers = $symfonyRequest->headers->all();
     $body = new DiactorosStream('php://temp', 'wb+');
     $body->write($symfonyRequest->getContent());
     $request = new ServerRequest($server, DiactorosRequestFactory::normalizeFiles($this->getFiles($symfonyRequest->files->all())), $symfonyRequest->getUri(), $symfonyRequest->getMethod(), $body, $headers);
     $request = $request->withCookieParams($symfonyRequest->cookies->all())->withQueryParams($symfonyRequest->query->all())->withParsedBody($symfonyRequest->request->all());
     foreach ($symfonyRequest->attributes->all() as $key => $value) {
         $request = $request->withAttribute($key, $value);
     }
     return $request;
 }
Ejemplo n.º 6
0
 /**
  * Transforms a Symfony request into a PSR-7 request object
  *
  * @param \Illuminate\Http\Request $nativeRequest Laravel request object
  * @return \Psr\Http\Message\ServerRequestInterface PSR-7 request object
  */
 protected function createRequest(\Illuminate\Http\Request $nativeRequest)
 {
     $files = ServerRequestFactory::normalizeFiles($this->getFiles($nativeRequest->files->all()));
     $server = ServerRequestFactory::normalizeServer($nativeRequest->server->all());
     $headers = $nativeRequest->headers->all();
     $cookies = $nativeRequest->cookies->all();
     $post = $nativeRequest->request->all();
     $query = $nativeRequest->query->all();
     $method = $nativeRequest->getMethod();
     $uri = $nativeRequest->getUri();
     $body = new Stream('php://temp', 'wb+');
     $body->write($nativeRequest->getContent());
     $request = new ServerRequest($server, $files, $uri, $method, $body, $headers, $cookies, $query, $post);
     foreach ($nativeRequest->attributes->all() as $key => $value) {
         $request = $request->withAttribute($key, $value);
     }
     return $request;
 }
 public function testUpladedFiles()
 {
     $f1 = fopen('php://memory', 'r');
     $f2 = fopen('php://memory', 'r');
     $f3 = fopen('php://memory', 'r');
     $rawFiles = array('file1' => array('name' => 'space-05.jpg', 'type' => 'image/jpeg', 'stream' => $f1, 'error' => 0, 'size' => 14620), 'myFiles' => array(array('name' => 'space-04.jpg', 'type' => 'image/png', 'stream' => $f2, 'error' => 0, 'size' => 1620), array('name' => 'space-03.jpg', 'type' => 'image/png', 'stream' => $f3, 'error' => 0, 'size' => 620)));
     $refFiles = array('file1' => array('name' => 'space-05.jpg', 'type' => 'image/jpeg', 'tmp_name' => $f1, 'error' => 0, 'size' => 14620), 'myFiles' => array(array('name' => 'space-04.jpg', 'type' => 'image/png', 'tmp_name' => $f2, 'error' => 0, 'size' => 1620), array('name' => 'space-03.jpg', 'type' => 'image/png', 'tmp_name' => $f3, 'error' => 0, 'size' => 620)));
     try {
         $reactRequest = $this->createReactRequest('POST');
         $reactRequest->setFiles($rawFiles);
         $request = $this->createTransformer()->transform($reactRequest);
         $this->assertInstanceOf(ServerRequest::class, $request);
         $files = ServerRequestFactory::normalizeFiles($refFiles);
         /* @var  ServerRequest $request */
         $this->assertEquals($files, $request->getUploadedFiles());
     } finally {
         fclose($f1);
         fclose($f2);
         fclose($f3);
     }
 }
Ejemplo n.º 8
0
 /**
  * Sapi constructor.
  *
  * @param EmitterInterface                $sapiEmitter
  * @param array|null                      $server
  * @param array|null                      $queryParams
  * @param array|object|null               $parsedBody
  * @param array|null                      $cookies
  * @param array|null                      $files
  * @param string|resource|StreamInterface $messageBody
  *
  * @SuppressWarnings(PHPMD.StaticAccess)
  * @SuppressWarnings(PHPMD.Superglobals)
  */
 public function __construct(EmitterInterface $sapiEmitter, array $server = null, array $queryParams = null, array $parsedBody = null, array $cookies = null, array $files = null, $messageBody = 'php://input')
 {
     $this->sapiEmitter = $sapiEmitter;
     // returns value if not null or $fallback otherwise
     $get = function ($nullable, $fallback) {
         return $nullable !== null ? $nullable : $fallback;
     };
     // Code below based on ServerRequestFactory::fromGlobals
     $this->server = ServerRequestFactory::normalizeServer($get($server, $_SERVER));
     $this->files = ServerRequestFactory::normalizeFiles($get($files, $_FILES));
     $this->headers = ServerRequestFactory::marshalHeaders($this->server);
     $this->uri = ServerRequestFactory::marshalUriFromServer($this->server, $this->headers);
     $this->method = ServerRequestFactory::get('REQUEST_METHOD', $this->server, 'GET');
     $this->cookies = $get($cookies, $_COOKIE);
     $this->queryParams = $get($queryParams, $_GET);
     $this->parsedBody = $get($parsedBody, $_POST);
     $this->messageBody = $messageBody;
 }