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鈥濄
绀轰緥锛
杩欎釜绫诲熀浜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 |
鍏叡鏂规硶
鏂规硶 | 鎻忚堪 | 瀹氫箟鍦 |
---|---|---|
__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);
}
杩愯姝ゅ皬鐗╀欢銆 姝ゆ柟娉曟敞鍐屾墍鏈夊繀椤荤殑瀹㈡埛绔剼鏈紝娓叉煋 澶氭枃浠朵笂浼犳帶浠躲