CUploadedFile

优质
小牛编辑
134浏览
2023-12-01
所有包 | 属性 | 方法
system.web
继承class CUploadedFile » CComponent
源自1.0
版本$Id: CUploadedFile.php 3515 2011-12-28 12:29:24Z mdomba $
源码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.

公共属性

隐藏继承属性

属性类型描述定义在
errorintegerReturns an error code describing the status of this file uploading.CUploadedFile
extensionNamestringthe file extension name for name.CUploadedFile
hasErrorbooleanwhether there is an error with the uploaded file.CUploadedFile
namestringthe original name of the file being uploadedCUploadedFile
sizeintegerthe actual size of the uploaded file in bytesCUploadedFile
tempNamestringthe path of the uploaded file on the server.CUploadedFile
typestringthe MIME-type of the uploaded file (such as "image/gif").CUploadedFile

公共方法

隐藏继承方法

方法描述定义在
__call()如果类中没有调的方法名,则调用这个方法。CComponent
__construct()Constructor.CUploadedFile
__get()返回一个属性值、一个事件处理程序列表或一个行为名称。CComponent
__isset()检查一个属性是否为null。CComponent
__set()设置一个组件的属性值。CComponent
__toString()String output.CUploadedFile
__unset()设置一个组件的属性为null。CComponent
asa()返回这个名字的行为对象。CComponent
attachBehavior()附加一个行为到组件。CComponent
attachBehaviors()附加一个行为列表到组件。CComponent
attachEventHandler()为事件附加一个事件处理程序。CComponent
canGetProperty()确定属性是否可读。CComponent
canSetProperty()确定属性是否可写。CComponent
detachBehavior()从组件中分离一个行为。CComponent
detachBehaviors()从组件中分离所有行为。CComponent
detachEventHandler()分离一个存在的事件处理程序。CComponent
disableBehavior()禁用一个附加行为。CComponent
disableBehaviors()禁用组件附加的所有行为。CComponent
enableBehavior()启用一个附加行为。CComponent
enableBehaviors()启用组件附加的所有行为。CComponent
evaluateExpression()计算一个PHP表达式,或根据组件上下文执行回调。CComponent
getError()Returns an error code describing the status of this file uploading.CUploadedFile
getEventHandlers()返回一个事件的附加处理程序列表。CComponent
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.CUploadedFile
getHasError()返回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
getInstances()Returns all uploaded files for the given model attribute.CUploadedFile
getInstancesByName()Returns an array of instances for the specified array name.CUploadedFile
getName()返回the original name of the file being uploadedCUploadedFile
getSize()返回the actual size of the uploaded file in bytesCUploadedFile
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.CUploadedFile
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.CUploadedFile
hasEvent()确定一个事件是否定义。CComponent
hasEventHandler()检查事件是否有附加的处理程序。CComponent
hasProperty()确定属性是否被定义。CComponent
raiseEvent()发起一个事件。CComponent
reset()Cleans up the loaded CUploadedFile instances.CUploadedFile
saveAs()Saves the uploaded file.CUploadedFile

受保护方法

隐藏继承方法

方法描述定义在
collectFilesRecursive()Processes incoming files for getInstanceByName.CUploadedFile
prefetchFiles()Initially processes $_FILES superglobal for easier use.CUploadedFile

属性详细

error 属性 只读 public integer getError()

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

参见

  • http://www.php.net/manual/en/features.file-upload.errors.php
extensionName 属性 只读 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 属性 只读 public boolean getHasError()

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

name 属性 只读 public string getName()

the original name of the file being uploaded

size 属性 只读 public integer getSize()

the actual size of the uploaded file in bytes

tempName 属性 只读 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 属性 只读 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.

方法详细

__construct() 方法
public void __construct(string $name, string $tempName, string $type, integer $size, integer $error)
$namestringthe original name of the file being uploaded
$tempNamestringthe path of the uploaded file on the server.
$typestringthe MIME-type of the uploaded file (such as "image/gif").
$sizeintegerthe actual size of the uploaded file in bytes
$errorintegerthe error code
源码: framework/web/CUploadedFile.php#165 (显示) publicfunction__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() 方法
public string __toString()
{return}stringthe string representation of the object
源码: framework/web/CUploadedFile.php#180 (显示) publicfunction__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.

collectFilesRecursive() 方法
protected static void collectFilesRecursive(string $key, mixed $names, mixed $tmp_names, mixed $types, mixed $sizes, mixed $errors)
$keystringkey for identifiing uploaded file: class name and subarray indexes
$namesmixedfile names provided by PHP
$tmp_namesmixedtemporary file names provided by PHP
$typesmixedfiletypes provided by PHP
$sizesmixedfile sizes provided by PHP
$errorsmixeduploading issues provided by PHP
源码: framework/web/CUploadedFile.php#145 (显示) protectedstaticfunctioncollectFilesRecursive($key,$names,$tmp_names,$types,$sizes,$errors)
{
if(is_array($names))
{
foreach($namesas$item=>$name)
self::collectFilesRecursive($key.'['.$item.']',$names[$item],$tmp_names[$item],$types[$item],$sizes[$item],$errors[$item]);
}
else
self::$_files[$key]=newCUploadedFile($names,$tmp_names,$types,$sizes,$errors);
}

Processes incoming files for getInstanceByName.

getError() 方法
public integer getError()
{return}integerthe error code
源码: framework/web/CUploadedFile.php#248 (显示) publicfunctiongetError()
{
return$this->_error;
}

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

参见

  • http://www.php.net/manual/en/features.file-upload.errors.php
getExtensionName() 方法
public string getExtensionName()
{return}stringthe 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.
源码: framework/web/CUploadedFile.php#267 (显示) publicfunctiongetExtensionName()
{
if(($pos=strrpos($this->_name,'.'))!==false)
return(string)substr($this->_name,$pos+1);
else
return'';
}
getHasError() 方法
public boolean getHasError()
{return}booleanwhether there is an error with the uploaded file. Check error for detailed error code information.
源码: framework/web/CUploadedFile.php#257 (显示) publicfunctiongetHasError()
{
return$this->_error!=UPLOAD_ERR_OK;
}
getInstance() 方法
public static CUploadedFile getInstance(CModel $model, string $attribute)
$modelCModelthe model instance
$attributestringthe attribute name. For tabular file uploading, this can be in the format of "[$i]attributeName", where $i stands for an integer index.
{return}CUploadedFilethe instance of the uploaded file. Null is returned if no file is uploaded for the specified model attribute.
源码: framework/web/CUploadedFile.php#58 (显示) publicstaticfunctiongetInstance($model,$attribute)
{
returnself::getInstanceByName(CHtml::resolveName($model,$attribute));
}

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

参见

  • getInstanceByName
getInstanceByName() 方法
public static CUploadedFile getInstanceByName(string $name)
$namestringthe name of the file input field.
{return}CUploadedFilethe instance of the uploaded file. Null is returned if no file is uploaded for the specified name.
源码: framework/web/CUploadedFile.php#82 (显示) publicstaticfunctiongetInstanceByName($name)
{
if(null===self::$_files)
self::prefetchFiles();

returnisset(self::$_files[$name])&&self::$_files[$name]->getError()!=UPLOAD_ERR_NO_FILE?self::$_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]').

getInstances() 方法
public static array getInstances(CModel $model, string $attribute)
$modelCModelthe model instance
$attributestringthe attribute name. For tabular file uploading, this can be in the format of "[$i]attributeName", where $i stands for an integer index.
{return}arrayarray of CUploadedFile objects. Empty array is returned if no available file was found for the given attribute.
源码: framework/web/CUploadedFile.php#70 (显示) publicstaticfunctiongetInstances($model,$attribute)
{
returnself::getInstancesByName(CHtml::resolveName($model,$attribute));
}

Returns all uploaded files for the given model attribute.

getInstancesByName() 方法
public static array getInstancesByName(string $name)
$namestringthe name of the array of files
{return}arraythe array of CUploadedFile objects. Empty array is returned if no adequate upload was found. Please note that this array will contain all files from all subarrays regardless how deeply nested they are.
源码: framework/web/CUploadedFile.php#100 (显示) publicstaticfunctiongetInstancesByName($name)
{
if(null===self::$_files)
self::prefetchFiles();

$len=strlen($name);
$results=array();
foreach(array_keys(self::$_files)as$key)
if(0===strncmp($key,$name,$len)&&self::$_files[$key]->getError()!=UPLOAD_ERR_NO_FILE)
$results[]=self::$_files[$key];
return$results;
}

Returns an array of instances for the specified array name.

If multiple files were uploaded and saved as 'Files[0]', 'Files[1]', 'Files[n]'..., you can have them all by passing 'Files' as array name.

getName() 方法
public string getName()
{return}stringthe original name of the file being uploaded
源码: framework/web/CUploadedFile.php#210 (显示) publicfunctiongetName()
{
return$this->_name;
}
getSize() 方法
public integer getSize()
{return}integerthe actual size of the uploaded file in bytes
源码: framework/web/CUploadedFile.php#238 (显示) publicfunctiongetSize()
{
return$this->_size;
}
getTempName() 方法
public string getTempName()
{return}stringthe 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.
源码: framework/web/CUploadedFile.php#220 (显示) publicfunctiongetTempName()
{
return$this->_tempName;
}
getType() 方法
public string getType()
{return}stringthe 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.
源码: framework/web/CUploadedFile.php#230 (显示) publicfunctiongetType()
{
return$this->_type;
}
prefetchFiles() 方法
protected static void prefetchFiles()
源码: framework/web/CUploadedFile.php#127 (显示) protectedstaticfunctionprefetchFiles()
{
self::$_files=array();
if(!isset($_FILES)||!is_array($_FILES))
return;

foreach($_FILESas$class=>$info)
self::collectFilesRecursive($class,$info['name'],$info['tmp_name'],$info['type'],$info['size'],$info['error']);
}

Initially processes $_FILES superglobal for easier use. Only for internal usage.

reset() 方法 (可用自 v1.1.4)
public static void reset()
源码: framework/web/CUploadedFile.php#118 (显示) publicstaticfunctionreset()
{
self::$_files=null;
}

Cleans up the loaded CUploadedFile instances. This method is mainly used by test scripts to set up a fixture.

saveAs() 方法
public boolean saveAs(string $file, boolean $deleteTempFile=true)
$filestringthe file path used to save the uploaded file
$deleteTempFilebooleanwhether 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}booleantrue whether the file is saved successfully
源码: framework/web/CUploadedFile.php#192 (显示) publicfunctionsaveAs($file,$deleteTempFile=true)
{
if($this->_error==UPLOAD_ERR_OK)
{
if($deleteTempFile)
returnmove_uploaded_file($this->_tempName,$file);
elseif(is_uploaded_file($this->_tempName))
returncopy($this->_tempName,$file);
else
returnfalse;
}
else
returnfalse;
}

Saves the uploaded file.