1 <?php 2 //html部分 3 <div class="form-group"> 4 <label class="col-sm-2 control-label" for="upload">图片上传:</label> 5 <div class="col-sm-8"> 6 <input type="file" name="upload" id="upload" class="file"> 7 <input type="hidden" name="filepath" id="filepath" class="form-control" > 8 <ul class="affix-list" id="fileList"></ul> 9 <p class="ws_break text-muted"> 10 <small>一次最多传1个,每个文件大小上限2M,格式:*.jpg;*.jpeg;*.gif;*.bmp;*.png;</small> 11 </p> 12 13 <script type="text/javascript"> 14 $(function(){ 15 uploadify( 16 { 17 debug:false, 18 text:'上传附件', 19 auto:true, 20 file:'upload', 21 hide:false, 22 resText:'filepath', 23 exts:'*.jpg;*.jpeg;*.gif;*.bmp;*.png;', 24 limit:1 25 }, 26 { 27 taskId:'{$taskId}', 28 objType:'work' 29 }, 30 uploadResponse 31 ); 32 }) 33 function uploadResponse(json){ 34 $("#fileList").append('<li class="affix-list-item">'+json.msg.name+'</li>'); 35 } 36 </script> 37 </div> 38 39 </div> 40 //JS部分 41 /** 42 * 文件上传 43 * @param paramReg 44 * @param contrReg 45 */ 46 function uploadify(paramReg, contrReg,uploadResponse) { 47 var paramReg = paramReg ? paramReg : {}; 48 var contrReg = contrReg ? contrReg : {}; 49 var uploadify = {}; 50 var auto = paramReg.auto == true ? true : false;//是否自动提交 51 var debug = paramReg.debug == true ? true : false;//是否开启debug调试 52 var hide = paramReg.hide == true ? true : false;//上传完成后是否隐藏文件域 53 var swf = paramReg.swf ? paramReg.swf : 'static/js/uploadify/uploadify.swf';//flash路径 54 var uploader = paramReg.uploader ? paramReg.uploader 55 : 'index.php?do=ajax&view=upload&flash=1';////上传基本路径 56 var deleter = paramReg.deleter ? paramReg.deleter 57 : 'index.php?do=ajax&view=upload&action=delete';//文件删除路径 58 var file = fname = paramReg.file ? paramReg.file : 'upload';//file 表单名name=id=upload 59 var size = paramReg.size;//文件大小限制 60 var exts = paramReg.exts;//文件类型限制 61 var resText=paramReg.resText; 62 63 var method = paramReg.m ? paramReg.m : 'post';//上传方式 64 var limit = paramReg.limit ? paramReg.limit : 1;//上传个数限制 65 var qlimit = paramReg.qlimit ? paramReg.qlimit : 999; 66 var objType = contrReg.objType?contrReg.objType:'task'; 67 var taskId = parseInt(contrReg.taskId)+0; 68 var workId = parseInt(contrReg.workId)+0; 69 var fileType = contrReg.fileType?contrReg.fileType:'att'; 70 var text = paramReg.text ? paramReg.text : '上传文件';//按钮文字 71 var sessionId = contrReg.sessionId ? contrReg.sessionId : ''; 72 var pre = contrReg.mode == 'back' ? '../../' : ''; 73 swf = pre + swf; 74 deleter = pre + deleter; 75 uploader = pre + uploader +'&fileType='+fileType+'&filename=' + file+'&objType='+objType+'&taskId='+taskId+'&workId='+workId; 76 uploadify.auto = auto; 77 uploadify.debug = debug; 78 uploadify.hide = hide; 79 uploadify.swf = swf; 80 uploadify.uploader = uploader; 81 uploadify.deleter = deleter; 82 uploadify.fileObjName = file; 83 uploadify.fileSizeLimit = size; 84 uploadify.fileTypeExts = exts; 85 uploadify.resText=resText; 86 uploadify.uploadLimit = limit; 87 uploadify.formData = {'PHPSESSID':sessionId}; 88 uploadify.queueSizeLimit = qlimit; 89 uploadify.method = method; 90 uploadify.buttonText = text; 91 uploadify.removeTimeout = 1; 92 uploadify.removeCompleted = hide; 93 uploadify.onUploadSuccess = function(file, json, response) { 94 //console.log(json); 95 json = eval('(' + json + ')'); 96 if (json.err) { 97 if (msgType == 1) { 98 tipsOp(decodeURI(json.err)); 99 } else { 100 tipsOp(decodeURI(json.err)); 101 } 102 return false; 103 } else { 104 105 if($("#filepath")){ 106 if ($("#filepath").val()) { 107 $("#filepath").val($("#filepath").val() + '|' + json.msg.url); 108 } else { 109 $("#filepath").val(json.msg.url); 110 } 111 } 112 if($("#fileid")){ 113 if ($("#fileid").val()) { 114 $("#fileid").val($("#fileid").val() + '|' + json.msg.fileid); 115 } else { 116 $("#fileid").val(json.msg.fileid); 117 } 118 } 119 typeof (uploadResponse) == 'function' && uploadResponse(json); 120 } 121 }; 122 $("#" + file).uploadify(uploadify); 123 } 124 125 126 127 //PHP部分----上传至阿里云OSS 128 if($action=='delete'){ 129 $id = intval($id); 130 if($id){ 131 $objFileT = keke_table_class::get_instance('witkey_file'); 132 $fileInfo = $objFileT->get_table_info('file_id',$id); 133 if($fileInfo['uid']==$gUid||!$fileInfo['uid']){ 134 keke_file_class::del_file($fileInfo['save_name']); 135 $objFileT->del('file_id', $id); 136 echo json_encode(array ('status'=>1));die(); 137 } 138 } 139 die(); 140 }else{ 141 $___y = date ( 'Y' );$___m = date ( 'm' );$___d = date ( 'd' ); 142 define ( 'UPLOAD_RULE', "$___y/$___m/$___d/" ); 143 $fileFormat = explode('|',$kekezu->_sys_config['file_type']); 144 $maxSize = intval($kekezu->_sys_config['max_size'])*1024*1024; 145 $pathDir = setUploadPath($fileType, $objType); 146 //$upload = new keke_upload_class(S_ROOT.$pathDir ,$fileFormat,$maxSize); 147 /**********************************ali-OSS********************************************/ 148 149 require_once S_ROOT.'alioss/sdk.class.php'; 150 $oss = new ALIOSS(); 151 $bucket = 'jiamofang'; 152 if ($_FILES[$filename]["name"]) { 153 if ($_FILES[$filename]["error"] > 0) { 154 echo json_encode(array ('err' => FALSE, 'msg' => $filename));die(); 155 } else { 156 157 $content = ''; 158 $length = 0; 159 $fp = fopen($_FILES[$filename]["tmp_name"],'r'); 160 if($fp) { 161 $f = fstat($fp); 162 $length = $f['size']; 163 while(!feof($fp)) { 164 $content .= fgets($fp,8192); 165 } 166 } 167 $upload_file_options = array('content' => $content, 'length' => $length); 168 $savenameTemp = setSavename($_FILES[$filename]["name"]); 169 $urlTemp = $pathDir.$savenameTemp; 170 $upload_file_by_content = $oss->upload_file_by_content($bucket, 'ujia/'.$urlTemp, $upload_file_options); 171 172 } 173 $savename['name'] = $_FILES[$filename]["name"]; 174 $savename['saveName'] = $savenameTemp; 175 } else { 176 echo json_encode(array ('err' => FALSE, 'msg' => $filename));die(); 177 } 178 179 /*********************************************************************************/ 180 181 if (is_array ( $savename )) { 182 $name = $savename ['name']; 183 $path = $urlTemp; 184 $objFileT = keke_table_class::get_instance('witkey_file'); 185 $arrData = array( 186 'file_name' =>strtoupper(CHARSET) =='GBK'?kekezu::utftogbk($savename ['name']):$savename ['name'], 187 'save_name' =>$path, 188 'uid' =>$gUid, 189 'username' =>$gUsername, 190 'obj_type' =>$objType, 191 'task_id' =>$taskId, 192 'work_id' =>$workId, 193 'on_time' =>time() 194 ); 195 //var_dump($arrData);exit; 196 $fileId = $objFileT->save ( $arrData); 197 $msg = array ('url' => $path,'filename' => $filename, 'name' => $name,'fileid'=>intval($fileId)); 198 } else{ 199 $err = $msg = $savename; 200 } 201 echo json_encode(array ('err' => $err, 'msg' => $msg));die(); 202 } 203 204 function setUploadPath($fileType,$objType){ 205 $pathDir = 'data/uploads/'; 206 if($fileType =='sys'&&$objType =='auth'){ 207 $pathDir .= $fileType.'/'.$objType.'/'; 208 }elseif($fileType =='sys'&&$objType =='ad'){ 209 $pathDir .= $fileType.'/'.$objType.'/'; 210 }elseif($fileType =='sys'&&$objType =='mark'){ 211 $pathDir .= $fileType.'/'.$objType.'/'; 212 }elseif($fileType =='sys'&&$objType =='tools'){ 213 $pathDir .= $fileType.'/'.$objType.'/'; 214 }elseif($fileType =='space'){ 215 $pathDir .= $fileType.'/'; 216 }else{ 217 $pathDir .= UPLOAD_RULE; 218 } 219 return $pathDir; 220 } 221 function getExt($fileName) { 222 $ext = explode ( ".", $fileName ); 223 $ext = $ext [count ( $ext ) - 1]; 224 return strtolower ( $ext ); 225 } 226 function setSavename($fileName) { 227 $uniqid = uniqid ( rand () ); 228 $name = $uniqid . '.' . getExt($fileName); 229 return $name; 230 } 231 232 233 //PHP部分---上传至本地 234 if($action=='delete'){ 235 $id = intval($id); 236 if($id){ 237 $objFileT = keke_table_class::get_instance('witkey_file'); 238 $fileInfo = $objFileT->get_table_info('file_id',$id); 239 if($fileInfo['uid']==$gUid||!$fileInfo['uid']){ 240 keke_file_class::del_file($fileInfo['save_name']); 241 $objFileT->del('file_id', $id); 242 echo json_encode(array ('status'=>1));die(); 243 } 244 } 245 die(); 246 }else{ 247 $___y = date ( 'Y' );$___m = date ( 'm' );$___d = date ( 'd' ); 248 define ( 'UPLOAD_RULE', "$___y/$___m/$___d/" ); 249 $fileFormat = explode('|',$kekezu->_sys_config['file_type']); 250 $maxSize = intval($kekezu->_sys_config['max_size'])*1024*1024; 251 $pathDir = setUploadPath($fileType, $objType); 252 $upload = new keke_upload_class(S_ROOT.$pathDir ,$fileFormat,$maxSize); 253 $savename = $upload->run( $filename , 1); 254 if (is_array ( $savename )) { 255 $name = $savename [0] ['name']; 256 $path = $pathDir. $savename [0] ['saveName']; 257 if($fileType == 'service'){ 258 $size_a = array (100, 100 ); 259 $size_b = array (210, 210 ); 260 $result = keke_img_class::resize ( $path, $size_a, $size_b, true ); 261 } 262 if($fileType != 'sys'){ 263 keke_glob_class::waterMark($path); 264 } 265 $objFileT = keke_table_class::get_instance('witkey_file'); 266 $arrData = array( 267 'file_name' =>strtoupper(CHARSET) =='GBK'?kekezu::utftogbk($savename [0] ['name']):$savename [0] ['name'], 268 'save_name' =>$path, 269 'uid' =>$gUid, 270 'username' =>$gUsername, 271 'obj_type' =>$objType, 272 'task_id' =>$taskId, 273 'work_id' =>$workId, 274 'on_time' =>time() 275 ); 276 $fileId = $objFileT->save ( $arrData); 277 $msg = array ('url' => $path,'filename' => $filename, 'name' => $name,'fileid'=>intval($fileId)); 278 } 279 else{ 280 $err = $msg = $savename; 281 } 282 echo json_encode(array ('err' => $err, 'msg' => $msg));die(); 283 } 284 function setUploadPath($fileType,$objType){ 285 $pathDir = 'data/uploads/'; 286 if($fileType =='sys'&&$objType =='auth'){ 287 $pathDir .= $fileType.'/'.$objType.'/'; 288 }elseif($fileType =='sys'&&$objType =='ad'){ 289 $pathDir .= $fileType.'/'.$objType.'/'; 290 }elseif($fileType =='sys'&&$objType =='mark'){ 291 $pathDir .= $fileType.'/'.$objType.'/'; 292 }elseif($fileType =='sys'&&$objType =='tools'){ 293 $pathDir .= $fileType.'/'.$objType.'/'; 294 }elseif($fileType =='space'){ 295 $pathDir .= $fileType.'/'; 296 }else{ 297 $pathDir .= UPLOAD_RULE; 298 } 299 return $pathDir; 300 }
浙公网安备 33010602011771号