--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/symfony/src/Symfony/Component/HttpFoundation/File/UploadedFile.php Sat Sep 24 15:40:41 2011 +0200
@@ -0,0 +1,225 @@
+<?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\Component\HttpFoundation\File;
+
+use Symfony\Component\HttpFoundation\File\Exception\FileException;
+use Symfony\Component\HttpFoundation\File\Exception\FileNotFoundException;
+
+/**
+ * A file uploaded through a form.
+ *
+ * @author Bernhard Schussek <bernhard.schussek@symfony.com>
+ * @author Florian Eckerstorfer <florian@eckerstorfer.org>
+ * @author Fabien Potencier <fabien@symfony.com>
+ *
+ * @api
+ */
+class UploadedFile extends File
+{
+ /**
+ * Whether the test mode is activated.
+ *
+ * Local files are used in test mode hence the code should not enforce HTTP uploads.
+ *
+ * @var Boolean
+ */
+ private $test = false;
+
+ /**
+ * The original name of the uploaded file.
+ *
+ * @var string
+ */
+ private $originalName;
+
+ /**
+ * The mime type provided by the uploader.
+ *
+ * @var string
+ */
+ private $mimeType;
+
+ /**
+ * The file size provided by the uploader.
+ *
+ * @var string
+ */
+ private $size;
+
+ /**
+ * The UPLOAD_ERR_XXX constant provided by the uploader.
+ *
+ * @var integer
+ */
+ private $error;
+
+ /**
+ * Accepts the information of the uploaded file as provided by the PHP global $_FILES.
+ *
+ * The file object is only created when the uploaded file is valid (i.e. when the
+ * isValid() method returns true). Otherwise the only methods that could be called
+ * on an UploadedFile instance are:
+ *
+ * * getClientOriginalName,
+ * * getClientMimeType,
+ * * isValid,
+ * * getError.
+ *
+ * Calling any other method on an non-valid instance will cause an unpredictable result.
+ *
+ * @param string $path The full temporary path to the file
+ * @param string $originalName The original file name
+ * @param string $mimeType The type of the file as provided by PHP
+ * @param integer $size The file size
+ * @param integer $error The error constant of the upload (one of PHP's UPLOAD_ERR_XXX constants)
+ * @param Boolean $test Whether the test mode is active
+ *
+ * @throws FileException If file_uploads is disabled
+ * @throws FileNotFoundException If the file does not exist
+ *
+ * @api
+ */
+ public function __construct($path, $originalName, $mimeType = null, $size = null, $error = null, $test = false)
+ {
+ if (!ini_get('file_uploads')) {
+ throw new FileException(sprintf('Unable to create UploadedFile because "file_uploads" is disabled in your php.ini file (%s)', get_cfg_var('cfg_file_path')));
+ }
+
+ $this->originalName = basename($originalName);
+ $this->mimeType = $mimeType ?: 'application/octet-stream';
+ $this->size = $size;
+ $this->error = $error ?: UPLOAD_ERR_OK;
+ $this->test = (Boolean) $test;
+
+ if (UPLOAD_ERR_OK === $this->error) {
+ parent::__construct($path);
+ }
+ }
+
+ /**
+ * Returns the original file name.
+ *
+ * It is extracted from the request from which the file has been uploaded.
+ * Then is should not be considered as a safe value.
+ *
+ * @return string|null The original name
+ *
+ * @api
+ */
+ public function getClientOriginalName()
+ {
+ return $this->originalName;
+ }
+
+ /**
+ * Returns the file mime type.
+ *
+ * It is extracted from the request from which the file has been uploaded.
+ * Then is should not be considered as a safe value.
+ *
+ * @return string|null The mime type
+ *
+ * @api
+ */
+ public function getClientMimeType()
+ {
+ return $this->mimeType;
+ }
+
+ /**
+ * Returns the file size.
+ *
+ * It is extracted from the request from which the file has been uploaded.
+ * Then is should not be considered as a safe value.
+ *
+ * @return integer|null The file size
+ *
+ * @api
+ */
+ public function getClientSize()
+ {
+ return $this->size;
+ }
+
+ /**
+ * Returns the upload error.
+ *
+ * If the upload was successful, the constant UPLOAD_ERR_OK is returned.
+ * Otherwise one of the other UPLOAD_ERR_XXX constants is returned.
+ *
+ * @return integer The upload error
+ *
+ * @api
+ */
+ public function getError()
+ {
+ return $this->error;
+ }
+
+ /**
+ * Returns whether the file was uploaded successfully.
+ *
+ * @return Boolean True if no error occurred during uploading
+ *
+ * @api
+ */
+ public function isValid()
+ {
+ return $this->error === UPLOAD_ERR_OK;
+ }
+
+ /**
+ * Moves the file to a new location.
+ *
+ * @param string $directory The destination folder
+ * @param string $name The new file name
+ *
+ * @return File A File object representing the new file
+ *
+ * @throws FileException if the file has not been uploaded via Http
+ *
+ * @api
+ */
+ public function move($directory, $name = null)
+ {
+ if ($this->isValid() && ($this->test || is_uploaded_file($this->getPathname()))) {
+ return parent::move($directory, $name);
+ }
+
+ throw new FileException(sprintf('The file "%s" has not been uploaded via Http', $this->getPathname()));
+ }
+
+ /**
+ * Returns the maximum size of an uploaded file as configured in php.ini
+ *
+ * @return type The maximum size of an uploaded file in bytes
+ */
+ static public function getMaxFilesize()
+ {
+ $max = trim(ini_get('upload_max_filesize'));
+
+ if ('' === $max) {
+ return PHP_INT_MAX;
+ }
+
+ switch (strtolower(substr($max, -1))) {
+ case 'g':
+ $max *= 1024;
+ case 'm':
+ $max *= 1024;
+ case 'k':
+ $max *= 1024;
+ }
+
+ return (integer) $max;
+ }
+}