First Local Commit - After Clean up.
Signed-off-by: Rick Hays <rhays@haysgang.com>
This commit is contained in:
203
system/HTTP/Files/UploadedFileInterface.php
Normal file
203
system/HTTP/Files/UploadedFileInterface.php
Normal file
@@ -0,0 +1,203 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* CodeIgniter
|
||||
*
|
||||
* An open source application development framework for PHP
|
||||
*
|
||||
* This content is released under the MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014-2019 British Columbia Institute of Technology
|
||||
* Copyright (c) 2019 CodeIgniter Foundation
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*
|
||||
* @package CodeIgniter
|
||||
* @author CodeIgniter Dev Team
|
||||
* @copyright 2019 CodeIgniter Foundation
|
||||
* @license https://opensource.org/licenses/MIT MIT License
|
||||
* @link https://codeigniter.com
|
||||
* @since Version 4.0.0
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
namespace CodeIgniter\HTTP\Files;
|
||||
|
||||
/**
|
||||
* Value object representing a single file uploaded through an
|
||||
* HTTP request. Used by the IncomingRequest class to
|
||||
* provide files.
|
||||
*
|
||||
* Typically, implementors will extend the SplFileInfo class.
|
||||
*
|
||||
* @package CodeIgniter\HTTP
|
||||
*/
|
||||
interface UploadedFileInterface
|
||||
{
|
||||
|
||||
/**
|
||||
* Accepts the file information as would be filled in from the $_FILES array.
|
||||
*
|
||||
* @param string $path The temporary location of the uploaded file.
|
||||
* @param string $originalName The client-provided filename.
|
||||
* @param string $mimeType The type of file as provided by PHP
|
||||
* @param integer $size The size of the file, in bytes
|
||||
* @param integer $error The error constant of the upload (one of PHP's UPLOADERRXXX constants)
|
||||
*/
|
||||
public function __construct(string $path, string $originalName, string $mimeType = null, int $size = null, int $error = null);
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Move the uploaded file to a new location.
|
||||
*
|
||||
* $targetPath may be an absolute path, or a relative path. If it is a
|
||||
* relative path, resolution should be the same as used by PHP's rename()
|
||||
* function.
|
||||
*
|
||||
* The original file MUST be removed on completion.
|
||||
*
|
||||
* If this method is called more than once, any subsequent calls MUST raise
|
||||
* an exception.
|
||||
*
|
||||
* When used in an SAPI environment where $_FILES is populated, when writing
|
||||
* files via moveTo(), is_uploaded_file() and move_uploaded_file() SHOULD be
|
||||
* used to ensure permissions and upload status are verified correctly.
|
||||
*
|
||||
* If you wish to move to a stream, use getStream(), as SAPI operations
|
||||
* cannot guarantee writing to stream destinations.
|
||||
*
|
||||
* @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.
|
||||
* @param string $name the name to rename the file to.
|
||||
*
|
||||
* @throws \InvalidArgumentException if the $path specified is invalid.
|
||||
* @throws \RuntimeException on any error during the move operation.
|
||||
* @throws \RuntimeException on the second or subsequent call to the method.
|
||||
*/
|
||||
public function move(string $targetPath, string $name = null);
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Returns whether the file has been moved or not. If it has,
|
||||
* the move() method will not work and certain properties, like
|
||||
* the tempName, will no longer be available.
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
public function hasMoved(): bool;
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Retrieve the error associated with the uploaded file.
|
||||
*
|
||||
* The return value MUST be one of PHP's UPLOAD_ERR_XXX constants.
|
||||
*
|
||||
* If the file was uploaded successfully, this method MUST return
|
||||
* UPLOAD_ERR_OK.
|
||||
*
|
||||
* Implementations SHOULD return the value stored in the "error" key of
|
||||
* the file in the $_FILES array.
|
||||
*
|
||||
* @see http://php.net/manual/en/features.file-upload.errors.php
|
||||
* @return integer One of PHP's UPLOAD_ERR_XXX constants.
|
||||
*/
|
||||
public function getError(): int;
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Retrieve the filename sent by the client.
|
||||
*
|
||||
* Do not trust the value returned by this method. A client could send
|
||||
* a malicious filename with the intention to corrupt or hack your
|
||||
* application.
|
||||
*
|
||||
* Implementations SHOULD return the value stored in the "name" key of
|
||||
* the file in the $_FILES array.
|
||||
*
|
||||
* @return string|null The filename sent by the client or null if none
|
||||
* was provided.
|
||||
*/
|
||||
public function getName(): string;
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Gets the temporary filename where the file was uploaded to.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getTempName(): string;
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Returns the original file extension, based on the file name that
|
||||
* was uploaded. This is NOT a trusted source.
|
||||
* For a trusted version, use guessExtension() instead.
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
public function getClientExtension(): string;
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Returns the mime type as provided by the client.
|
||||
* This is NOT a trusted value.
|
||||
* For a trusted version, use getMimeType() instead.
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
public function getClientMimeType(): string;
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Returns whether the file was uploaded successfully, based on whether
|
||||
* it was uploaded via HTTP and has no errors.
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
public function isValid(): bool;
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Returns the destination path for the move operation where overwriting is not expected.
|
||||
*
|
||||
* First, it checks whether the delimiter is present in the filename, if it is, then it checks whether the
|
||||
* last element is an integer as there may be cases that the delimiter may be present in the filename.
|
||||
* For the all other cases, it appends an integer starting from zero before the file's extension.
|
||||
*
|
||||
* @param string $destination
|
||||
* @param string $delimiter
|
||||
* @param integer $i
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getDestination(string $destination, string $delimiter = '_', int $i = 0): string;
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
}
|
||||
Reference in New Issue
Block a user