| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251 | 
							- <?php
 
- /**
 
-  * 文件上传
 
-  * User: Mike
 
-  * Email: m@9026.com
 
-  * Date: 2016/6/21
 
-  * Time: 11:45
 
-  */
 
- namespace App\Widget\Tools;
 
- class FileUpload {
 
-     /**
 
-      * 单个文件上传
 
-      * @param $folder
 
-      * @param string $position
 
-      * @param array $option
 
-      */
 
-     public function single($folder, $id, $name = "data[file]", $file = "", $option = [], $param = [])
 
-     {
 
-         $file_types = 'jpg|jpeg|gif|png|bmp|doc|docx|xls|xlsx|ppt|htm|html|php|txt|zip|rar|gz|bz2|crt|key|txt|pem';
 
-         $option['position'] = isset($option['position']) ? $option['position'] : "alioss";
 
-         $option['placeholder'] = isset($option['placeholder']) ? $option['placeholder'] : "";
 
-         $option['button_class'] = isset($option['button_class']) ? $option['button_class'] : "";
 
-         //扩展参数
 
-         $extParam = '';
 
-         if($param){
 
-             foreach($param AS $key => $val){
 
-                 $extParam .= $key . ":" . $val . ',';
 
-             }
 
-         }
 
-         $token = csrf_token();
 
-         $html = <<<EOF
 
-          <link href="/base/plugins/webuploader/webuploader.css" rel="stylesheet">
 
-                         <script src="/base/js/plugins/webuploader/webuploader.min.js"></script>
 
-             <div class="WebUploader">
 
-                 <div class="WebUploader_button">
 
-                     <div class="input-group">
 
-                         <input type="text" class="form-control input-uploadfile" value="{$file}" name="{$name}" placeholder="{$option['placeholder']}" readonly>
 
-                         <div class="input-group-btn">
 
-                             <div id="{$id}" class="btn-xs {$option['button_class']}">上传文件</div>
 
-                         </div>
 
-                     </div>
 
-                 </div>
 
-             </div>
 
-             <script type="text/javascript">
 
-                 function webUpload{$id}() {
 
-                     var uploaderthis="#{$id}";
 
-                     var uploader = WebUploader.create({
 
-                         auto: true,
 
-                         pick: {
 
-                             id: uploaderthis,
 
-                             multiple: false,
 
-                         },
 
-                         accept: {
 
-                             title: 'Files',
 
-                             extensions: "{$file_types}",
 
-                             mimeTypes:'*/*'
 
-                         },
 
-                         swf: "/base/plugins/webuploader/uploader.swf",
 
-                         server: "/admin/Base/Attachment/fileupload?folder=$folder",
 
-                         fileNumLimit: 300,
 
-                         fileSizeLimit: 20 * 1024 * 1024,
 
-                         fileSingleSizeLimit: 10 * 1024 * 1024,
 
-                     });
 
-                     uploader.option("formData", {
 
-                         $extParam
 
-                         _time: Math.random(),
 
-                         _token : "{$token}",
 
-                         _position : "{$option['position']}",
 
-                         elementid : "",
 
-                         file_type : "file",
 
-                         folder : "{$folder}"
 
-                     });
 
-                     uploader.on("error",function(type){
 
-                         if(type=='F_EXCEED_SIZE'){
 
-                             layer.msg("上传的文件不大于10MB", {icon: 2});
 
-                             return false;
 
-                         }else if(type=="Q_TYPE_DENIED"){
 
-                             layer.msg("请上传格式正确的文件", {icon: 2});
 
-                             return false;
 
-                         }else {
 
-                             layer.msg("服务器繁忙请稍候再试", {icon: 2});
 
-                             return false;
 
-                         }
 
-                     });
 
-                     uploader.on("uploadProgress",function(file,percentage){
 
-                         var re = /([0-9]+\.[0-9]{2})[0-9]*/;
 
-                         aNew = parseFloat(percentage*100).toFixed(0);
 
-                         $(uploaderthis).parent().parent().find(".webuploader-pick").html(aNew+"%");
 
-                         if(percentage==1){
 
-                             $(uploaderthis).parent().parent().find(".webuploader-pick").html('保存中...');
 
-                         }
 
-                     });
 
-                     uploader.on('uploadSuccess', function( file, response ) {
 
-                         uploader.removeFile( file );
 
-                         if(response.code == 200){
 
-                             $(uploaderthis).parent().parent().find(".input-uploadfile").val(response.fileurl);
 
-                             $(uploaderthis).parent().parent().find(".webuploader-pick").html('上传完成');
 
-                         }else{
 
-                             layer.msg(response.message, {icon: 2});
 
-                             $(uploaderthis).parent().parent().find(".webuploader-pick").html('上传失败');
 
-                         }
 
-                     });
 
-                 }
 
-                 webUpload{$id}();
 
-             </script>
 
- EOF;
 
-         return $html;
 
-     }
 
-     public function single2($folder, $id, $name="data", $file="", $option=[]){
 
-         $folder = urlencode($folder);
 
-         $imgHtml =  "";
 
-         $option['callback'] = isset($option['callback']) ? $option['callback'] : "";
 
-         if(!$option['callback'] && !empty($file)) {
 
-             // $imgHtml .=  " <li><em class=\"close\" onclick='$(this).parent().remove()'>×</em>
 
-             //         <a href='{$file}' class='cc_file' target='_blank'> <img src=\"/base/plugins/imguploader/img/file.jpg\" alt=\"{$file}\"></a>
 
-             //         <p class=\"rate\" style=\"display: none;\"><span style=\"width: 100%;\"></span></p>
 
-             //         <p class=\"yes\" style=\"display: none;\"></p>
 
-             //         <p class=\"no\"></p>
 
-             //         <input type=\"hidden\" name=\"{$name}\" value=\"{$file}\">
 
-             //     </li>";
 
-             $iconImage = in_array(fileExt($img['url']), ['jpg', 'png' , 'gif' , 'jpeg' , 'bmp']) ? " <div class='image'><img src=\"{$img['url']}\" alt= /></div>" : "<div class='icon'><i class='fa fa-file'></i></div>";
 
-             $imgHtml .="<li >
 
-                     <div class=\"file\">
 
-                         <span class=\"corner\"></span>
 
-                         {$iconImage}
 
-                         <div class=\"file-name\">
 
-                             <p>{$img['alt']}</p>
 
-                             <small></small>
 
-                         </div>
 
-                     </div>
 
-                     <em class=\"close\" onclick=\"$(this).parent().remove()\" >×</em>
 
-                     <input type=\"hidden\" name=\"{$name}[alt][]\" value=\"{$img['alt']}\">
 
-                     <input type=\"hidden\" name=\"{$name}[url][]\" value=\"{$img['url']}\">
 
-                     </li>";
 
-         }
 
-         $html = <<<EOF
 
-            <script type="text/javascript" src="/base/plugins/imguploader/uploader.js"></script>
 
-             <div class="layout_upload">
 
-                 <ul class="ullit">
 
-                     $imgHtml
 
-                     <li>
 
-                         <a class="layout_upload_but" id="$id"> </a>
 
-                     </li>
 
-                     <div class="ov_h"></div>
 
-                 </ul>
 
-             </div>
 
-             <script type="text/javascript">
 
-             /*
 
-              UploaderPick:"#",                       //绑定按钮id
 
-              UploaderUrl:"",                         //百度插件地址
 
-              UploaderServer:"",                      //上传api
 
-              UploaderMax:1                           //现在最大上传个数
 
-              UploadHiddenField:""                    //隐藏域name
 
-              */
 
-             new uploadFile({
 
-                 UploaderPick:"#$id",
 
-                 UploaderMax:0,
 
-                 UploadHiddenField:"$name",
 
-                 UploaderServer:"/api/attachment/webupload?elementid=&folder=$folder&_time=" + Math.random(),
 
-                 UploaderSingle:true
 
-             });
 
-         </script>
 
- EOF;
 
-         return $html;
 
-     }
 
-     public function multi2($folder, $id, $name="data[image]", $files=[], $option=[]){
 
-         $folder = urlencode($folder);
 
-         $imgHtml =  "";
 
-         $option['callback'] = isset($option['callback']) ? $option['callback'] : "";
 
-         $option['max'] = isset($option['max']) ? $option['max'] : 200;
 
-         $option['max'] = $option['max']-count($files);
 
-         if(!$option['callback'] && !empty($files)) {
 
-             foreach($files as $key=>$val) {
 
-                 if(is_string($val)) {
 
-                     $file['url'] = $val;
 
-                     $file['alt'] = '';
 
-                 }else{
 
-                     $file = $val;
 
-                 }
 
-                 /*$imgHtml .=  " <li><em class=\"close\" onclick='$(this).parent().remove()'>×</em>
 
-                         <a href='{$file['url']}' title='{$file['alt']}' target='_blank'> <img src=\"/base/plugins/imguploader/img/file.jpg\" alt=\"{$file['alt']}\"></a>
 
-                         <p class=\"rate\" style=\"display: none;\"><span style=\"width: 100%;\"></span></p>
 
-                         <p class=\"yes\" style=\"display: none;\"></p>
 
-                         <p class=\"no\"></p>
 
-                         <input type=\"hidden\" name=\"{$name}[alt][]\" value=\"{$file['alt']}\">
 
-                         <input type=\"hidden\" name=\"{$name}[url][]\" value=\"{$file['url']}\">
 
-                     </li>";*/
 
-                 $iconImage = in_array(fileExt($file['url']), ['jpg', 'png' , 'gif' , 'jpeg' , 'bmp']) ? " <div class='image'><img src=\"{$file['url']}\" alt= /></div>" : "<div class='icon'><i class='fa fa-file'></i></div>";
 
-                 $imgHtml .="<li >
 
-                         <div class=\"file\">
 
-                             <span class=\"corner\"></span>
 
-                             {$iconImage}
 
-                             <div class=\"file-name\">
 
-                                 <p>{$file['alt']}</p>
 
-                                 <small></small>
 
-                             </div>
 
-                         </div>
 
-                         <em class=\"close\" onclick=\"$(this).parent().remove()\" >×</em>
 
-                         <input type=\"hidden\" name=\"{$name}[alt][]\" value=\"{$file['alt']}\">
 
-                         <input type=\"hidden\" name=\"{$name}[url][]\" value=\"{$file['url']}\">
 
-                         </li>";
 
-             }
 
-         }
 
-         $html = <<<EOF
 
-            <script type="text/javascript" src="/base/plugins/imguploader/uploader.js"></script>
 
-             <div class="layout_upload">
 
-                 <ul class="ullit">
 
-                                     $imgHtml
 
-                     <li>
 
-                         <a class="layout_upload_but" id="$id"> </a>
 
-                     </li>
 
-                     <div class="ov_h"></div>
 
-                 </ul>
 
-             </div>
 
-             <script type="text/javascript">
 
-             /*
 
-              UploaderPick:"#",                       //绑定按钮id
 
-              UploaderUrl:"",                         //百度插件地址
 
-              UploaderServer:"",                      //上传api
 
-              UploaderMax:5                           //现在最大上传个数
 
-              UploadHiddenField:""                    //隐藏域name
 
-              */
 
-             new uploadFile({
 
-                 UploaderPick:"#$id",
 
-                 UploaderMax:{$option['max']},
 
-                 UploaderServer:"/api/attachment/webupload?elementid=&folder=$folder&_time=" + Math.random(),
 
-                 UploadHiddenField:"$name"
 
-             });
 
-         </script>
 
- EOF;
 
-         return $html;
 
-     }
 
- }
 
 
  |