Yii Framework v1.1.10 绫诲弬鑰

CMultiFileUpload

system.web.widgets
缁ф壙 class CMultiFileUpload » CInputWidget » CWidget » CBaseController » CComponent
婧愯嚜 1.0
鐗堟湰 $Id: CMultiFileUpload.php 3515 2011-12-28 12:29:24Z mdomba $
婧愮爜 framework/web/widgets/CMultiFileUpload.php
CMultiFileUpload 鐢熸垚涓涓厑璁稿悓鏃朵笂浼犲涓枃浠剁殑鏂囦欢杈撳叆鍩熴

杩欎釜绫诲熀浜jQuery Multi File Upload plugin銆 宸蹭笂浼犵殑鏂囦欢娑堟伅鍙互閫氳繃$_FILES[widget-name]璁块棶锛岃繖涓彉閲忚繑鍥炰竴涓凡涓婁紶鏂囦欢缁勬垚鐨勬暟缁勩 娉ㄦ剰锛氫綘蹇呴』璁剧疆鍖呭惈姝ゅ瓧娈电殑琛ㄥ崟鐨勨渆nctype鈥濆睘鎬у间负鈥渕ultipart/form-data鈥濄

绀轰緥锛
<?php
  $this->widget('CMultiFileUpload', array(
     'model'=>$model,
     'attribute'=>'files',
     'accept'=>'jpg|gif',
     'options'=>array(
        'onFileSelect'=>'function(e, v, m){ alert("onFileSelect - "+v) }',
        'afterFileSelect'=>'function(e, v, m){ alert("afterFileSelect - "+v) }',
        'onFileAppend'=>'function(e, v, m){ alert("onFileAppend - "+v) }',
        'afterFileAppend'=>'function(e, v, m){ alert("afterFileAppend - "+v) }',
        'onFileRemove'=>'function(e, v, m){ alert("onFileRemove - "+v) }',
        'afterFileRemove'=>'function(e, v, m){ alert("afterFileRemove - "+v) }',
     ),
  ));
?>

鍏叡灞炴

闅愯棌缁ф壙灞炴

灞炴绫诲瀷鎻忚堪瀹氫箟鍦
accept string the 鍏佽涓婁紶鐨勬枃浠剁被鍨 (渚嬪 "gif|jpg")銆 娉ㄦ剰锛氫粛鐒堕渶瑕佸湪鏈嶅姟鍣ㄧ妫娴嬩笂浼犵殑鏂囦欢绫诲瀷鏄惁琚厑璁搞 CMultiFileUpload
actionPrefix string actions鐨処D鐨勫墠缂銆 褰撳井浠跺湪CController::actions涓0鏄庝簡 鍔ㄤ綔鎻愪緵鑰咃紝鍙互涓哄叾鍔ㄤ綔鐨処D鎸囧畾鍓嶇紑浠ュ尯鍒 浜庡埆鐨勫井浠舵垨鎺у埗鍣ㄣ傚綋寰欢鐢ㄤ簬鎺у埗鍣 鐨勮鍥句腑鏃讹紝蹇呴』閰嶇疆鍚屾牱鐨勫墠缂銆 CWidget
attribute string the 涓庢灏忕墿浠剁浉鍏宠仈鐨勫睘鎬с 杩欎釜鍚嶅瓧鍙互鍖呭惈鏂规嫭鍙 (e. CInputWidget
controller CController 杩斿洖姝ゅ井浠舵墍灞炵殑鎺у埗鍣ㄣ CWidget
denied string 褰撲笂浼犳枃浠剁殑绫诲瀷涓嶅厑璁告椂鏄剧ず鐨勬秷鎭 CMultiFileUpload
duplicate string 涓涓枃浠惰閫変腑涓ゆ鏃舵樉绀虹殑娑堟伅銆 CMultiFileUpload
file string 鐢ㄤ簬鏄剧ず宸蹭笂浼犳枃浠跺悕鐨勬秷鎭ā鏉裤 CMultiFileUpload
htmlOptions array 娓叉煋杈撳叆鏍囩鏃堕檮鍔犵殑HTML閫夐」 CInputWidget
id string 杩斿洖姝ゅ井浠剁殑ID銆傚鏋滈渶瑕佺殑璇濓紝灏嗙敓浜т竴涓柊鐨処D骞跺皢鍏惰繑鍥炪 CWidget
max integer 鍙笂浼犵殑鏈澶ф枃浠舵暟銆傚鏋滆缃负-1锛岃〃绀轰笉鍙楅檺鍒躲傞粯璁ゅ兼槸-1銆 CMultiFileUpload
model CModel 涓庢灏忕墿浠剁浉鍏宠仈鐨勬暟鎹ā鍨嬨 CInputWidget
name string 杈撳叆鎺т欢鐨勫悕瀛椼傚鏋model娌℃湁璁剧疆锛屽垯蹇呴』璁剧疆姝ゅ睘鎬с CInputWidget
options array additional options that can be passed to the constructor of the multifile js object. CMultiFileUpload
owner CBaseController 杩斿洖姝ゅ井浠剁殑鎵鏈夎呮垨鍒涘缓鑰呫 CWidget
remove string 绉婚櫎鎸夐挳鐨勬爣绛俱傞粯璁ゅ兼槸鈥淩emove鈥濄 CMultiFileUpload
selected string 涓涓枃浠惰閫夋嫨鏃舵樉绀虹殑娑堟伅銆 CMultiFileUpload
skin mixed 寰欢浣跨敤鐨勭毊鑲ょ殑鍚嶇О銆傞粯璁や负鈥渄efault鈥濄 濡傛灉姝ゅ睘鎬ц缃负false锛屽井浠跺皢涓嶄細鏈夌毊鑲よ浣跨敤銆 CWidget
value string 杈撳叆鎺т欢鐨勫 CInputWidget
viewPath string 杩斿洖鍖呭惈姝ゅ井浠舵墍闇鐨勮鍥炬枃浠剁殑璺緞銆 CWidget

鍙椾繚鎶ゅ睘鎬

闅愯棌缁ф壙灞炴

灞炴绫诲瀷鎻忚堪瀹氫箟鍦
clientOptions array JavaScript閫夐」 CMultiFileUpload

鍏叡鏂规硶

闅愯棌缁ф壙鏂规硶

鏂规硶鎻忚堪瀹氫箟鍦
__call() 濡傛灉绫讳腑娌℃湁璋冪殑鏂规硶鍚嶏紝鍒欒皟鐢ㄨ繖涓柟娉曘 CComponent
__construct() 鏋勯犲櫒銆 CWidget
__get() 杩斿洖涓涓睘鎬у笺佷竴涓簨浠跺鐞嗙▼搴忓垪琛ㄦ垨涓涓涓哄悕绉般 CComponent
__isset() 妫鏌ヤ竴涓睘鎬ф槸鍚︿负null銆 CComponent
__set() 璁剧疆涓涓粍浠剁殑灞炴у笺 CComponent
__unset() 璁剧疆涓涓粍浠剁殑灞炴т负null銆 CComponent
actions() 杩斿洖姝idget浣跨敤鐨勫姩浣滅殑鍒楄〃銆 CWidget
asa() 杩斿洖杩欎釜鍚嶅瓧鐨勮涓哄璞° CComponent
attachBehavior() 闄勫姞涓涓涓哄埌缁勪欢銆 CComponent
attachBehaviors() 闄勫姞涓涓涓哄垪琛ㄥ埌缁勪欢銆 CComponent
attachEventHandler() 涓轰簨浠堕檮鍔犱竴涓簨浠跺鐞嗙▼搴忋 CComponent
beginCache() Begins fragment caching. CBaseController
beginClip() Begins recording a clip. CBaseController
beginContent() Begins the rendering of content that is to be decorated by the specified view. CBaseController
beginWidget() Creates a widget and executes it. CBaseController
canGetProperty() 纭畾灞炴ф槸鍚﹀彲璇汇 CComponent
canSetProperty() 纭畾灞炴ф槸鍚﹀彲鍐欍 CComponent
createWidget() Creates a widget and initializes it. CBaseController
detachBehavior() 浠庣粍浠朵腑鍒嗙涓涓涓恒 CComponent
detachBehaviors() 浠庣粍浠朵腑鍒嗙鎵鏈夎涓恒 CComponent
detachEventHandler() 鍒嗙涓涓瓨鍦ㄧ殑浜嬩欢澶勭悊绋嬪簭銆 CComponent
disableBehavior() 绂佺敤涓涓檮鍔犺涓恒 CComponent
disableBehaviors() 绂佺敤缁勪欢闄勫姞鐨勬墍鏈夎涓恒 CComponent
enableBehavior() 鍚敤涓涓檮鍔犺涓恒 CComponent
enableBehaviors() 鍚敤缁勪欢闄勫姞鐨勬墍鏈夎涓恒 CComponent
endCache() Ends fragment caching. CBaseController
endClip() Ends recording a clip. CBaseController
endContent() Ends the rendering of content. CBaseController
endWidget() Ends the execution of the named widget. CBaseController
evaluateExpression() 璁$畻涓涓狿HP琛ㄨ揪寮忥紝鎴栨牴鎹粍浠朵笂涓嬫枃鎵ц鍥炶皟銆 CComponent
getController() 杩斿洖姝ゅ井浠舵墍灞炵殑鎺у埗鍣ㄣ CWidget
getEventHandlers() 杩斿洖涓涓簨浠剁殑闄勫姞澶勭悊绋嬪簭鍒楄〃銆 CComponent
getId() 杩斿洖姝ゅ井浠剁殑ID銆傚鏋滈渶瑕佺殑璇濓紝灏嗙敓浜т竴涓柊鐨処D骞跺皢鍏惰繑鍥炪 CWidget
getOwner() 杩斿洖姝ゅ井浠剁殑鎵鏈夎呮垨鍒涘缓鑰呫 CWidget
getViewFile() 鏍规嵁瑙嗗浘鍚嶆煡鎵捐鍥炬枃浠躲 CWidget
getViewPath() 杩斿洖鍖呭惈姝ゅ井浠舵墍闇鐨勮鍥炬枃浠剁殑璺緞銆 CWidget
hasEvent() 纭畾涓涓簨浠舵槸鍚﹀畾涔夈 CComponent
hasEventHandler() 妫鏌ヤ簨浠舵槸鍚︽湁闄勫姞鐨勫鐞嗙▼搴忋 CComponent
hasProperty() 纭畾灞炴ф槸鍚﹁瀹氫箟銆 CComponent
init() 鍒濆鍖栨寰欢銆 CWidget
raiseEvent() 鍙戣捣涓涓簨浠躲 CComponent
registerClientScript() 娉ㄥ唽蹇呴』鐨凜SS鍜孞avaScript銆 CMultiFileUpload
render() 娓叉煋涓涓鍥俱 CWidget
renderFile() Renders a view file. CBaseController
renderInternal() Renders a view file. CBaseController
run() 杩愯姝ゅ皬鐗╀欢銆 CMultiFileUpload
setId() 璁剧疆姝ゅ井浠剁殑ID銆 CWidget
widget() Creates a widget and executes it. CBaseController

鍙椾繚鎶ゆ柟娉

闅愯棌缁ф壙鏂规硶

鏂规硶鎻忚堪瀹氫箟鍦
getClientOptions() 杩斿洖JavaScript閫夐」 CMultiFileUpload
hasModel() 纭畾姝ゅ皬鐗╀欢鏄惁涓庝竴涓暟鎹ā鍨嬬浉鍏宠仈銆 CInputWidget
resolveNameID() CInputWidget

灞炴ц缁

accept 灞炴
public string $accept;

the 鍏佽涓婁紶鐨勬枃浠剁被鍨 (渚嬪 "gif|jpg")銆 娉ㄦ剰锛氫粛鐒堕渶瑕佸湪鏈嶅姟鍣ㄧ妫娴嬩笂浼犵殑鏂囦欢绫诲瀷鏄惁琚厑璁搞

clientOptions 灞炴 鍙
protected array getClientOptions()

JavaScript閫夐」

denied 灞炴
public string $denied;

褰撲笂浼犳枃浠剁殑绫诲瀷涓嶅厑璁告椂鏄剧ず鐨勬秷鎭

duplicate 灞炴
public string $duplicate;

涓涓枃浠惰閫変腑涓ゆ鏃舵樉绀虹殑娑堟伅銆

file 灞炴 锛堝彲鐢ㄨ嚜 v1.1.3锛
public string $file;

鐢ㄤ簬鏄剧ず宸蹭笂浼犳枃浠跺悕鐨勬秷鎭ā鏉裤

max 灞炴
public integer $max;

鍙笂浼犵殑鏈澶ф枃浠舵暟銆傚鏋滆缃负-1锛岃〃绀轰笉鍙楅檺鍒躲傞粯璁ゅ兼槸-1銆

options 灞炴 锛堝彲鐢ㄨ嚜 v1.1.7锛
public array $options;

additional options that can be passed to the constructor of the multifile js object.

remove 灞炴
public string $remove;

绉婚櫎鎸夐挳鐨勬爣绛俱傞粯璁ゅ兼槸鈥淩emove鈥濄

selected 灞炴
public string $selected;

涓涓枃浠惰閫夋嫨鏃舵樉绀虹殑娑堟伅銆

鏂规硶璇︾粏

getClientOptions() 鏂规硶
protected array getClientOptions()
{return} array JavaScript閫夐」
婧愮爜锛 framework/web/widgets/CMultiFileUpload.php#117 (鏄剧ず)
protected function getClientOptions()
{
    
$options=$this->options;
    foreach(array(
'onFileRemove','afterFileRemove','onFileAppend','afterFileAppend','onFileSelect','afterFileSelect') as $event)
    {
        if(isset(
$options[$event]) && strpos($options[$event],'js:')!==0)
            
$options[$event]='js:'.$options[$event];
    }

    if(
$this->accept!==null)
        
$options['accept']=$this->accept;
    if(
$this->max>0)
        
$options['max']=$this->max;

    
$messages=array();
    foreach(array(
'remove','denied','selected','duplicate','file') as $messageName)
    {
        if(
$this->$messageName!==null)
            
$messages[$messageName]=$this->$messageName;
    }
    if(
$messages!==array())
        
$options['STRING']=$messages;

    return 
$options;
}

registerClientScript() 鏂规硶
public void registerClientScript()
婧愮爜锛 framework/web/widgets/CMultiFileUpload.php#102 (鏄剧ず)
public function registerClientScript()
{
    
$id=$this->htmlOptions['id'];

    
$options=$this->getClientOptions();
    
$options=$options===array()? '' CJavaScript::encode($options);

    
$cs=Yii::app()->getClientScript();
    
$cs->registerCoreScript('multifile');
    
$cs->registerScript('Yii.CMultiFileUpload#'.$id,"jQuery(\"#{$id}\").MultiFile({$options});");
}

娉ㄥ唽蹇呴』鐨凜SS鍜孞avaScript銆

run() 鏂规硶
public void run()
婧愮爜锛 framework/web/widgets/CMultiFileUpload.php#86 (鏄剧ず)
public function run()
{
    list(
$name,$id)=$this->resolveNameID();
    if(
substr($name,-2)!=='[]')
        
$name.='[]';
    if(isset(
$this->htmlOptions['id']))
        
$id=$this->htmlOptions['id'];
    else
        
$this->htmlOptions['id']=$id;
    
$this->registerClientScript();
    echo 
CHtml::fileField($name,'',$this->htmlOptions);
}

杩愯姝ゅ皬鐗╀欢銆 姝ゆ柟娉曟敞鍐屾墍鏈夊繀椤荤殑瀹㈡埛绔剼鏈紝娓叉煋 澶氭枃浠朵笂浼犳帶浠躲

Copyright © 2008-2011 by Yii Software LLC
All Rights Reserved.