碰到一個項目,有一個比較繁瑣的功能6個ajax上傳,基本上每個上傳邏輯多不一樣,記錄一下
thinkphp的view頁面:
id方便找到這個元素 name一定要加 [ ]
div >
點擊發布先判定一下,然后在把需要的參數傳遞給doUploadFiles函數
//發布案情 $( #aq_sub ).click(function() { var guanxi = many_one var type_file = file var type_name = fileaq var anqing = $( #anqing ).val(); if ($.trim(anqing).length == 0) { layer.alert( 請輸入內容! $( #anqing ).focus(); return false; } else { var cate_id = 3; doUploadFiles(cate_id, type_file, type_name, guanxi, anqing); })
參數說明
cate_id:多個上傳的識別id
type_file: 判斷是圖片還是文件上傳(nofiley:有的文件不需要上傳)
type_name:上傳文件的id
guanxi:關系 項目需要 參數分為many_one,many_many,one_one(多個用戶每人一條數據,多個用戶每人多條數據,多個用戶一人一條數據)
content:內容
function doUploadFiles(cate_id, type_file, type_name, guanxi, content) { var guanxi = arguments[3] ? arguments[3] : many_one //設置關系 var formData = new FormData(); var fangchan_id = $( #fangchan_id ).val(); formData.append( fangchan_id , fangchan_id); formData.append( cate_id , cate_id); formData.append( guanxi , guanxi); formData.append( content , content); if(type_file != nofile ){ formData.append( type_file , type_file); formData.append( file_length , $( # +type_name)[0].files.length); for(var i=0; i $( # +type_name)[0].files.length;i++){ formData.append( file[] ,$( # +type_name)[0].files[i]); $.ajax({ url: /Property/jindiaoHandle , type: POST , data: formData, dataType: json , async: false, cache: false, contentType: false, processData: false, success: function(data) { console.log( 上傳: ,data) if (data.status == 200) { layer.msg(data.msg, { icon: 1 }); window.location.reload(); } else { layer.msg(data.msg, { icon: 1 }); return false; }
php代碼比較長
/** * 提交房源盡調 html' target='_blank'>public function jindiaoHandle() $user_id = session( user_id $fangchan_id = I( post.fangchan_id $cate_id = I( post.cate_id $cate_arr = array( 6 , 7 , 8 $content = I( post.content $type_file = I( post.type_file $file_length = I( post.file_length //判斷是否上傳文件 //many_one 多個用戶存在一條 many_many 多個用戶存在多條 one_one 只能催在一條數據 $guanxi = I( post.guanxi $guanxi?$guanxi: many_one $content?$content: 0 if(empty($user_id)){ $ret = [ status = 1001 , msg = 請先登錄! .$user_id, data = $this- ajaxReturn($ret, json }else{ $level = M( users )- where([ user_id = $user_id])- getField( level //判斷是不是法拍經理 if ($level != 2) { $ret = [ status = 1002 , msg = 您沒有權限填寫! , data = $this- ajaxReturn($ret); if(empty($fangchan_id)) $ret = [ status = 1003 , msg = 找不到此房源! , data = $this- ajaxReturn($ret); if(empty($cate_id)) $ret = [ status = 1004 , msg = 找不到此盡調類型! , data = $this- ajaxReturn($ret); if(empty($content)) $ret = [ status = 1005 , msg = 內容不能為空! , data = $this- ajaxReturn($ret); $fc_user_id = M( fangchan )- where([ fangchan_id = $fangchan_id])- getField( user_id //判斷是不是該房產的法拍經理 if ($fc_user_id == $user_id) { $data = [ fangchan_id = $fangchan_id, user_id = $user_id, cate_id = $cate_id, content = $content, res_num = $file_length, add_time = time(), is_user = 1, is_show = 1 , } else { if(!in_array($cate_id,$cate_arr)) $fc_add_time = M( fangchan )- where([ fangchan_id = $fangchan_id])- getField( add_time //獲取添加時間 if ((time() - $fc_add_time) (12 * 60 * 60)) { $arr = [ status = 1006 , msg = 請于24小時候后來發布! , data = $this- ajaxReturn($arr, json $data = [ fangchan_id = $fangchan_id, user_id = $user_id, cate_id = $cate_id, content = $content, res_num = $file_length, add_time = time(), is_user = 0, is_show = 1 , if($guanxi== many_one ) $fc_jindiao_data = M( fangchan_jindiao ) - where([ fangchan_id = $fangchan_id, user_id = $user_id, cate_id = $cate_id]) - getField( jindiao_id //判斷房產盡調是修改還是添加 if($fc_jindiao_data){ $res_edit = M( fangchan_jindiao )- where( jindiao_id= .$fc_jindiao_data)- save($data); }else{ $res_add = M( fangchan_jindiao )- add($data); }elseif($guanxi== one_one ) $fc_jindiao_data = M( fangchan_jindiao ) - where([ fangchan_id = $fangchan_id, cate_id = $cate_id]) - getField( jindiao_id //判斷房產盡調是修改還是添加 if($fc_jindiao_data){ $res_edit = M( fangchan_jindiao )- where( jindiao_id= .$fc_jindiao_data)- save($data); }else{ $res_add = M( fangchan_jindiao )- add($data); }elseif($guanxi== many_many ) $res_add = M( fangchan_jindiao )- add($data); if($result[ status ] == -1){ exit(json_encode(array( status = -1, msg = $result[ msg ], result = ))); $add_time = time(); if(!empty($res_edit)) $where=array( user_id = $user_id, fangchan_id = $fangchan_id, cate_id = $cate_id); $r_info = M( fangchan_jindiao )- where($where) - getField( jindiao_id if($r_info) foreach ($result[ result ] as $v) if($type_file== file ) $data=array( user_id = $user_id, fangchan_id = $fangchan_id, cate_id = $cate_id, add_time = $add_time, jindiao_id = $r_info, file = $ziyuan_info = M( fangchan_jdresources )- data($data)- add(); }elseif($type_file== image ) $data=array( user_id = $user_id, fangchan_id = $fangchan_id, cate_id = $cate_id, add_time = $add_time, jindiao_id = $r_info, images = $ziyuan_info = M( fangchan_jdresources )- data($data)- add(); $data=array( user_id = $user_id, fangchan_id = $fangchan_id, cate_id = $cate_id, add_time = $add_time, jindiao_id = $res_add, file = $ziyuan_info = M( fangchan_jdresources )- data($data)- add(); }elseif($type_file== image ) $data=array( user_id = $user_id, fangchan_id = $fangchan_id, cate_id = $cate_id, add_time = $add_time, jindiao_id = $res_add, images = $ziyuan_info = M( fangchan_jdresources )- data($data)- add(); if($ziyuan_info) $ret =[ status = 200, msg = 上傳成功 , data = $data }else{ $ret =[ status = 1010, msg = 上傳資源失敗 , data = }else{ $ret =[ status = 1011, msg = 上傳資源失敗 , data = }elseif(empty($res_add) empty($res_edit)){ $ret =[ status = 1007, msg = 上傳失敗 , data = }else{ $ret =[ status = 200, msg = 上傳成功 , data = $this- ajaxReturn($ret); *多圖上傳 public function uploadFile($type= file ){ if($type== file ) $type_info = array( doc , docx , xls , xlsx , zip , rar $type_path = /Public/upload/jidiao/files/ }elseif($type== image ){ $type_info = array( jpg , gif , png , jpeg $type_path = /Public/upload/jidiao/images/ $upload = new ThinkUpload();// 實例化上傳類 $upload- maxSize = 1 * 1024 * 1024;// 設置附件上傳大小 $upload- exts = $type_info;// 設置附件上傳類型 $upload- rootPath = . .$type_path; // 設置附件上傳根目錄 $upload- savePath = // 設置附件上傳(子)目錄 $upload- subName = array( date , Y/m-d //上傳文件 $info = $upload- upload(); $picurl = array(); if(!$info) {// 上傳錯誤提示錯誤信息 return array( status = -1, msg = $upload- getError(), result = }else{// 上傳成功 獲取上傳文件信息 foreach($info as $file){ $picurl[] = $type_path.$file[ savepath ].$file[ savename return array( status = 1, msg = 上傳成功 , result = $picurl); 獨孤九賤(5)_ThinkPHP5視頻教程
ThinkPHP是國內最流行的中文PHP開發框架,也是您Web項目的最佳選擇。《VeVb.com獨孤九賤(5)-ThinkPHP5視頻教程》課程以ThinkPHP5最新版本為例,從最基本的框架常識開始,將...
江湖傳言:PHP是世界上最好的編程語言。真的是這樣嗎?這個梗究竟是從哪來的?學會本課程,你就會明白了。 PHP 出品的PHP入門系統教學視頻,完全從初學者的角度出發,絕不玩虛的,一切以實用、有用...
獨孤九賤(1)_HTML5視頻教程
《VeVb.com原創html5視頻教程》課程特色:php 原創幽默段子系列課程,以惡搞,段子為主題風格的php視頻教程!輕松的教學風格,簡短的教學模式,讓同學們在不知不覺中,學會了HTML知識。 ...
ThinkPHP5實戰之[教學管理系統]
本套教程,以一個真實的學校教學管理系統為案例,手把手教會您如何在一張白紙上,從零開始,一步一步的用ThinkPHP5框架快速開發出一個商業項目。
PHP入門視頻教程之一周學會PHP
所有計算機語言的學習都要從基礎開始,《PHP入門視頻教程之一周學會PHP》不僅是PHP的基礎部分更主要的是PHP語言的核心技術,是學習PHP必須掌握的內容,任何PHP項目的實現都離不開這部分的內容,通...
PHP教程鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答