Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x

UploadedFile.php

Same filename in this branch
  1. 11.1.x vendor/guzzlehttp/psr7/src/UploadedFile.php
  2. 11.1.x vendor/symfony/http-foundation/File/UploadedFile.php

Namespace

Symfony\Bridge\PsrHttpMessage\Factory

File

vendor/symfony/psr-http-message-bridge/Factory/UploadedFile.php

View source
<?php


/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace Symfony\Bridge\PsrHttpMessage\Factory;

use Psr\Http\Message\UploadedFileInterface;
use Symfony\Component\HttpFoundation\File\Exception\FileException;
use Symfony\Component\HttpFoundation\File\File;
use Symfony\Component\HttpFoundation\File\UploadedFile as BaseUploadedFile;

/**
 * @author Nicolas Grekas <p@tchwork.com>
 */
class UploadedFile extends BaseUploadedFile {
    private bool $test = false;
    public function __construct(UploadedFileInterface $psrUploadedFile, callable $getTemporaryPath) {
        $error = $psrUploadedFile->getError();
        $path = '';
        if (\UPLOAD_ERR_NO_FILE !== $error) {
            $path = $psrUploadedFile->getStream()
                ->getMetadata('uri') ?? '';
            if ($this->test = !\is_string($path) || !is_uploaded_file($path)) {
                $path = $getTemporaryPath();
                $psrUploadedFile->moveTo($path);
            }
        }
        parent::__construct($path, (string) $psrUploadedFile->getClientFilename(), $psrUploadedFile->getClientMediaType(), $psrUploadedFile->getError(), $this->test);
    }
    public function move(string $directory, ?string $name = null) : File {
        if (!$this->isValid() || $this->test) {
            return parent::move($directory, $name);
        }
        $target = $this->getTargetFile($directory, $name);
        try {
            $this->psrUploadedFile
                ->moveTo((string) $target);
        } catch (\RuntimeException $e) {
            throw new FileException(\sprintf('Could not move the file "%s" to "%s" (%s).', $this->getPathname(), $target, $e->getMessage()), 0, $e);
        }
        @chmod($target, 0666 & ~umask());
        return $target;
    }

}

Classes

Title Deprecated Summary
UploadedFile @author Nicolas Grekas <p@tchwork.com>

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal