Server IP : 103.233.192.212 / Your IP : 52.14.154.79 Web Server : Apache/2 System : Linux sv1.inde.co.th 3.10.0-1160.36.2.el7.x86_64 #1 SMP Wed Jul 21 11:57:15 UTC 2021 x86_64 User : sumpatuan ( 1058) PHP Version : 5.5.38 Disable Function : symlink,shell_exec,exec,proc_close,proc_open,popen,system,dl,putenv,passthru,escapeshellarg,escapeshellcmd,pcntl_exec,proc_get_status,proc_nice,proc_terminate,pclose,ini_alter,virtual,openlog,ini_restore MySQL : ON | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /home/sumpatuan/public_html/backup/framework/web/widgets/ |
Upload File : |
<?php /** * CMultiFileUpload class file. * * @author Qiang Xue <qiang.xue@gmail.com> * @link http://www.yiiframework.com/ * @copyright 2008-2013 Yii Software LLC * @license http://www.yiiframework.com/license/ */ /** * CMultiFileUpload generates a file input that can allow uploading multiple files at a time. * * This is based on the {@link http://www.fyneworks.com/jquery/multiple-file-upload/ jQuery Multi File Upload plugin}. * The uploaded file information can be accessed via $_FILES[widget-name], which gives an array of the uploaded * files. Note, you have to set the enclosing form's 'enctype' attribute to be 'multipart/form-data'. * * Example: * <pre> * <?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) }', * ), * )); * ?> * </pre> * * @author Qiang Xue <qiang.xue@gmail.com> * @package system.web.widgets * @since 1.0 */ class CMultiFileUpload extends CInputWidget { /** * @var string the file types that are allowed (eg "gif|jpg"). * Note, the server side still needs to check if the uploaded files have allowed types. */ public $accept; /** * @var integer the maximum number of files that can be uploaded. If -1, it means no limits. Defaults to -1. */ public $max=-1; /** * @var string the label for the remove button. Defaults to "Remove". */ public $remove; /** * @var string message that is displayed when a file type is not allowed. */ public $denied; /** * @var string message that is displayed when a file is selected. */ public $selected; /** * @var string message that is displayed when a file appears twice. */ public $duplicate; /** * @var string the message template for displaying the uploaded file name * @since 1.1.3 */ public $file; /** * @var array additional options that can be passed to the constructor of the multifile js object. * @since 1.1.7 */ public $options=array(); /** * Runs the widget. * This method registers all needed client scripts and renders * the multiple file uploader. */ 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); } /** * Registers the needed CSS and JavaScript. */ 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});"); } /** * @return array the javascript options */ protected function getClientOptions() { $options=$this->options; foreach(array('onFileRemove','afterFileRemove','onFileAppend','afterFileAppend','onFileSelect','afterFileSelect') as $event) { if(isset($options[$event]) && !($options[$event] instanceof CJavaScriptExpression)) $options[$event]=new CJavaScriptExpression($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; } }