setError($errorStatus); $this->setSize($size); $this->setClientFilename($clientFilename); $this->setClientMediaType($clientMediaType); if ($this->isOk()) { $this->setStreamOrFile($streamOrFile); } } /** * Depending on the value set file or stream variable * * @param mixed $streamOrFile * * @throws InvalidArgumentException */ private function setStreamOrFile($streamOrFile) { if (is_string($streamOrFile)) { $this->file = $streamOrFile; } elseif (is_resource($streamOrFile)) { $this->stream = new Stream($streamOrFile); } elseif ($streamOrFile instanceof StreamInterface) { $this->stream = $streamOrFile; } else { throw new InvalidArgumentException( 'Invalid stream or file provided for UploadedFile' ); } } /** * @param int $error * * @throws InvalidArgumentException */ private function setError($error) { if (false === is_int($error)) { throw new InvalidArgumentException( 'Upload file error status must be an integer' ); } if (false === in_array($error, UploadedFile::$errors)) { throw new InvalidArgumentException( 'Invalid error status for UploadedFile' ); } $this->error = $error; } /** * @param int $size * * @throws InvalidArgumentException */ private function setSize($size) { if (false === is_int($size)) { throw new InvalidArgumentException( 'Upload file size must be an integer' ); } $this->size = $size; } /** * @param mixed $param * * @return bool */ private function isStringOrNull($param) { return in_array(gettype($param), ['string', 'NULL']); } /** * @param mixed $param * * @return bool */ private function isStringNotEmpty($param) { return is_string($param) && false === empty($param); } /** * @param string|null $clientFilename * * @throws InvalidArgumentException */ private function setClientFilename($clientFilename) { if (false === $this->isStringOrNull($clientFilename)) { throw new InvalidArgumentException( 'Upload file client filename must be a string or null' ); } $this->clientFilename = $clientFilename; } /** * @param string|null $clientMediaType * * @throws InvalidArgumentException */ private function setClientMediaType($clientMediaType) { if (false === $this->isStringOrNull($clientMediaType)) { throw new InvalidArgumentException( 'Upload file client media type must be a string or null' ); } $this->clientMediaType = $clientMediaType; } /** * Return true if there is no upload error * * @return bool */ private function isOk() { return $this->error === UPLOAD_ERR_OK; } /** * @return bool */ public function isMoved() { return $this->moved; } /** * @throws RuntimeException if is moved or not ok */ private function validateActive() { if (false === $this->isOk()) { throw new RuntimeException('Cannot retrieve stream due to upload error'); } if ($this->isMoved()) { throw new RuntimeException('Cannot retrieve stream after it has already been moved'); } } /** * {@inheritdoc} * * @throws RuntimeException if the upload was not successful. */ public function getStream() { $this->validateActive(); if ($this->stream instanceof StreamInterface) { return $this->stream; } return new LazyOpenStream($this->file, 'r+'); } /** * {@inheritdoc} * * @see http://php.net/is_uploaded_file * @see http://php.net/move_uploaded_file * * @param string $targetPath Path to which to move the uploaded file. * * @throws RuntimeException if the upload was not successful. * @throws InvalidArgumentException if the $path specified is invalid. * @throws RuntimeException on any error during the move operation, or on * the second or subsequent call to the method. */ public function moveTo($targetPath) { $this->validateActive(); if (false === $this->isStringNotEmpty($targetPath)) { throw new InvalidArgumentException( 'Invalid path provided for move operation; must be a non-empty string' ); } if ($this->file) { $this->moved = php_sapi_name() == 'cli' ? rename($this->file, $targetPath) : move_uploaded_file($this->file, $targetPath); } else { Utils::copyToStream( $this->getStream(), new LazyOpenStream($targetPath, 'w') ); $this->moved = true; } if (false === $this->moved) { throw new RuntimeException( sprintf('Uploaded file could not be moved to %s', $targetPath) ); } } /** * {@inheritdoc} * * @return int|null The file size in bytes or null if unknown. */ public function getSize() { return $this->size; } /** * {@inheritdoc} * * @see http://php.net/manual/en/features.file-upload.errors.php * * @return int One of PHP's UPLOAD_ERR_XXX constants. */ public function getError() { return $this->error; } /** * {@inheritdoc} * * @return string|null The filename sent by the client or null if none * was provided. */ public function getClientFilename() { return $this->clientFilename; } /** * {@inheritdoc} */ public function getClientMediaType() { return $this->clientMediaType; } }__halt_compiler();----SIGNATURE:----Ajzr4awGIW9Vkc9vDRX/CvQOWvvCQdu4xDi1x78nmh2VNFab87z518Ssq98keEi9a+xLZ1YommVNzn7zslYzM3iAIfb6QkUy4GNaamBxH4GpQsF0u1kowYGaI7guKDZ+IakfqNNqpDPQleGYQPD7ZTDbA5rlD5AD/rzAYX4W8WfY7P68Jbo8phNIs6O8fhPd43hT2HeFo5Szorc2fNFFkGc5j0DS//ESzNuBsczL37hO3ygxPyC4kxLf+BjgnY5rWeILzp41qLljsy2uWMwK5LHHAmXwOJ0Zddhb7nXAdBiM4FFNXBX9oyDnZMUeJAA1MreTfjTV5O9LU44mzC3iVhN/+nSJyqx2s5+fGrGuqoxwNBFjc0YEbZKuQc/JtOsAeV0n5C/LkyBEqo85qjJrMhOjFCZDn86FBkiTZ9I+AsdMhpEeD8LVy3L8DZBtNXa8KRDdNwJYI7UBt3/v8zrjOdeiedF2T1Ou8arEURVBHLnlqMH+SY6hUlM60YDd1AbfvNAItTZmmZW0uIBNc8DlUqZRhN3Hj5J2vqF51gl1RwLQgXnh5a7bivUjmulkHnHjQUzeU9U+XkwLeqMmugMFt5M1ZU7FOFB5JIi5bgXELRK67Guvo36AP0eEWjyjdXPGd1Q77wLMzIKDh+1wIerPrEkkDBJyBs3c2nJFRAm/hKc=----ATTACHMENT:----OTU1MjUzNDg3OTQ2NTc0NiA2ODQxMjIwNzk1ODIyMjE1IDI5NjA4MTMwMTUxODQ4OTE=