0 follower

CUploadedFile

Package system.web
Inheritance class CUploadedFile » CComponent
Since 1.0
Version $Id$
Source Code framework/web/CUploadedFile.php
CUploadedFile represents the information for an uploaded file.

Call getInstance to retrieve the instance of an uploaded file, and then use saveAs to save it on the server. You may also query other information about the file, including name, tempName, type, size and error.

Public Properties

Hide inherited properties

PropertyTypeDescriptionDefined By
error integer Returns an error code describing the status of this file uploading. CUploadedFile
extensionName string the file extension name for name. CUploadedFile
hasError boolean whether there is an error with the uploaded file. CUploadedFile
name string the original name of the file being uploaded CUploadedFile
size integer the actual size of the uploaded file in bytes CUploadedFile
tempName string the path of the uploaded file on the server. CUploadedFile
type string the MIME-type of the uploaded file (such as "image/gif"). CUploadedFile

Public Methods

Hide inherited methods

MethodDescriptionDefined By
__call() Calls the named method which is not a class method. CComponent
__get() Returns a property value, an event handler list or a behavior based on its name. CComponent
__isset() Checks if a property value is null. CComponent
__set() Sets value of a component property. CComponent
__toString() String output. CUploadedFile
__unset() Sets a component property to be null. CComponent
asa() Returns the named behavior object. CComponent
attachBehavior() Attaches a behavior to this component. CComponent
attachBehaviors() Attaches a list of behaviors to the component. CComponent
attachEventHandler() Attaches an event handler to an event. CComponent
canGetProperty() Determines whether a property can be read. CComponent
canSetProperty() Determines whether a property can be set. CComponent
detachBehavior() Detaches a behavior from the component. CComponent
detachBehaviors() Detaches all behaviors from the component. CComponent
detachEventHandler() Detaches an existing event handler. CComponent
disableBehavior() Disables an attached behavior. CComponent
disableBehaviors() Disables all behaviors attached to this component. CComponent
enableBehavior() Enables an attached behavior. CComponent
enableBehaviors() Enables all behaviors attached to this component. CComponent
getError() Returns an error code describing the status of this file uploading. CUploadedFile
getEventHandlers() Returns the list of attached event handlers for an event. CComponent
getExtensionName() Returns the file extension name for name. The extension name does not include the dot character. An empty string is returned if name does not have an extension name. CUploadedFile
getHasError() Returns whether there is an error with the uploaded file. Check error for detailed error code information. CUploadedFile
getInstance() Returns an instance of the specified uploaded file. CUploadedFile
getInstanceByName() Returns an instance of the specified uploaded file. CUploadedFile
getName() Returns the original name of the file being uploaded CUploadedFile
getSize() Returns the actual size of the uploaded file in bytes CUploadedFile
getTempName() Returns the path of the uploaded file on the server. Note, this is a temporary file which will be automatically deleted by PHP after the current request is processed. CUploadedFile
getType() Returns the MIME-type of the uploaded file (such as "image/gif"). Since this MIME type is not checked on the server side, do not take this value for granted. Instead, use CFileHelper::getMimeType to determine the exact MIME type. CUploadedFile
hasEvent() Determines whether an event is defined. CComponent
hasEventHandler() Checks whether the named event has attached handlers. CComponent
hasProperty() Determines whether a property is defined. CComponent
raiseEvent() Raises an event. CComponent
saveAs() Saves the uploaded file. CUploadedFile

Protected Methods

Hide inherited methods

MethodDescriptionDefined By
__construct() Constructor. CUploadedFile

Property Details

error property read-only
public integer getError()

Returns an error code describing the status of this file uploading.

extensionName property read-only
public string getExtensionName()

the file extension name for name. The extension name does not include the dot character. An empty string is returned if name does not have an extension name.

hasError property read-only
public boolean getHasError()

whether there is an error with the uploaded file. Check error for detailed error code information.

name property read-only
public string getName()

the original name of the file being uploaded

size property read-only
public integer getSize()

the actual size of the uploaded file in bytes

tempName property read-only
public string getTempName()

the path of the uploaded file on the server. Note, this is a temporary file which will be automatically deleted by PHP after the current request is processed.

type property read-only
public string getType()

the MIME-type of the uploaded file (such as "image/gif"). Since this MIME type is not checked on the server side, do not take this value for granted. Instead, use CFileHelper::getMimeType to determine the exact MIME type.

Method Details

__construct() method
protected void __construct(string $name, string $tempName, string $type, integer $size, integer $error)
$name string the original name of the file being uploaded
$tempName string the path of the uploaded file on the server.
$type string the MIME-type of the uploaded file (such as "image/gif").
$size integer the actual size of the uploaded file in bytes
$error integer the error code
Source Code: framework/web/CUploadedFile.php#100 (show)
protected function __construct($name,$tempName,$type,$size,$error)
{
    
$this->_name=$name;
    
$this->_tempName=$tempName;
    
$this->_type=$type;
    
$this->_size=$size;
    
$this->_error=$error;
}

Constructor. Use getInstance to get an instance of an uploaded file.

__toString() method (available since v1.0.2)
public string __toString()
{return} string the string representation of the object
Source Code: framework/web/CUploadedFile.php#116 (show)
public function __toString()
{
    return 
$this->_name;
}

String output. This is PHP magic method that returns string representation of an object. The implementation here returns the uploaded file's name.

getError() method
public integer getError()
{return} integer the error code
Source Code: framework/web/CUploadedFile.php#184 (show)
public function getError()
{
    return 
$this->_error;
}

Returns an error code describing the status of this file uploading.

getExtensionName() method
public string getExtensionName()
{return} string the file extension name for name. The extension name does not include the dot character. An empty string is returned if name does not have an extension name.
Source Code: framework/web/CUploadedFile.php#203 (show)
public function getExtensionName()
{
    if((
$pos=strrpos($this->_name,'.'))!==false)
        return (string)
substr($this->_name,$pos+1);
    else
        return 
'';
}

getHasError() method
public boolean getHasError()
{return} boolean whether there is an error with the uploaded file. Check error for detailed error code information.
Source Code: framework/web/CUploadedFile.php#193 (show)
public function getHasError()
{
    return 
$this->_error!=UPLOAD_ERR_OK;
}

getInstance() method
public static CUploadedFile getInstance(CModel $model, string $attribute)
$model CModel the model instance
$attribute string the attribute name. For tabular file uploading, this can be in the format of "attributeName[$i]", where $i stands for an integer index.
{return} CUploadedFile the instance of the uploaded file. Null is returned if no file is uploaded for the specified model attribute.
Source Code: framework/web/CUploadedFile.php#41 (show)
public static function getInstance($model,$attribute)
{
    if((
$pos=strpos($attribute,'['))!==false)
        
$name=get_class($model).substr($attribute,$pos).'['.substr($attribute,0,$pos).']';
    else
        
$name=get_class($model).'['.$attribute.']';
    return 
self::getInstanceByName($name);
}

Returns an instance of the specified uploaded file. The file should be uploaded using CHtml::activeFileField.

getInstanceByName() method
public static CUploadedFile getInstanceByName(string $name)
$name string the name of the file input field.
{return} CUploadedFile the instance of the uploaded file. Null is returned if no file is uploaded for the specified name.
Source Code: framework/web/CUploadedFile.php#57 (show)
public static function getInstanceByName($name)
{
    static 
$files;
    if(
$files===null)
    {
        
$files=array();
        if(isset(
$_FILES) && is_array($_FILES))
        {
            foreach(
$_FILES as $class=>$info)
            {
                if(
is_array($info['name']))
                {
                    
$keys=array_keys($info['name']);
                    foreach(
$keys as $key)
                    {
                        if(
is_array($info['name'][$key]))
                        {
                            
$subKeys=array_keys($info['name'][$key]);
                            foreach(
$subKeys as $subKey)
                                
$files["{$class}[{$key}][{$subKey}]"]=new CUploadedFile($info['name'][$key][$subKey],$info['tmp_name'][$key][$subKey],$info['type'][$key][$subKey],$info['size'][$key][$subKey],$info['error'][$key][$subKey]);
                        }
                        else
                            
$files["{$class}[{$key}]"]=new CUploadedFile($info['name'][$key],$info['tmp_name'][$key],$info['type'][$key],$info['size'][$key],$info['error'][$key]);
                    }
                }
                else
                    
$files[$class]=new CUploadedFile($info['name'],$info['tmp_name'],$info['type'],$info['size'],$info['error']);
            }
        }
    }

    return isset(
$files[$name]) && $files[$name]->getError()!=UPLOAD_ERR_NO_FILE $files[$name] : null;
}

Returns an instance of the specified uploaded file. The name can be a plain string or a string like an array element (e.g. 'Post[imageFile]', or 'Post[0][imageFile]').

getName() method
public string getName()
{return} string the original name of the file being uploaded
Source Code: framework/web/CUploadedFile.php#146 (show)
public function getName()
{
    return 
$this->_name;
}

getSize() method
public integer getSize()
{return} integer the actual size of the uploaded file in bytes
Source Code: framework/web/CUploadedFile.php#174 (show)
public function getSize()
{
    return 
$this->_size;
}

getTempName() method
public string getTempName()
{return} string the path of the uploaded file on the server. Note, this is a temporary file which will be automatically deleted by PHP after the current request is processed.
Source Code: framework/web/CUploadedFile.php#156 (show)
public function getTempName()
{
    return 
$this->_tempName;
}

getType() method
public string getType()
{return} string the MIME-type of the uploaded file (such as "image/gif"). Since this MIME type is not checked on the server side, do not take this value for granted. Instead, use CFileHelper::getMimeType to determine the exact MIME type.
Source Code: framework/web/CUploadedFile.php#166 (show)
public function getType()
{
    return 
$this->_type;
}

saveAs() method
public boolean saveAs(string $file, boolean $deleteTempFile=true)
$file string the file path used to save the uploaded file
$deleteTempFile boolean whether to delete the temporary file after saving. If true, you will not be able to save the uploaded file again in the current request.
{return} boolean true whether the file is saved successfully
Source Code: framework/web/CUploadedFile.php#128 (show)
public function saveAs($file,$deleteTempFile=true)
{
    if(
$this->_error==UPLOAD_ERR_OK)
    {
        if(
$deleteTempFile)
            return 
move_uploaded_file($this->_tempName,$file);
        else if(
is_uploaded_file($this->_tempName))
            return 
file_put_contents($file,file_get_contents($this->_tempName))!==false;
        else
            return 
false;
    }
    else
        return 
false;
}

Saves the uploaded file.