Browse Source

2.1.7 bug修复

laiguoran 5 years ago
parent
commit
ebb6b7c33c

+ 15 - 15
global/js/jlzf-change-new.js

@@ -123,7 +123,7 @@ $(function(){
             var id = $(this).attr('list_id');
             //删除localstorage记录和reductionList记录
             localStorage.removeItem('new_clistid_'+id);
-            var reductionlist = $('#reductionList').val().split(',');
+            var reductionlist = $('#reductionList').val().split('{,}');
             if($.trim(reductionlist) != ''){
                 $.each(reductionlist,function(k,v){
                     if(v == id){
@@ -132,7 +132,7 @@ $(function(){
                     }
                 });
             }
-            $('#reductionList').val(reductionlist.join(','));
+            $('#reductionList').val(reductionlist.join('{,}'));
             //先删所有后还原
             var $rowtr = $('#addlist').find('tbody').children('tr');
             $rowtr.removeClass('success');
@@ -195,7 +195,7 @@ $(function(){
                     localStorage.setItem('new_clistid_'+id,scnum);
                 }
                 trlist.push(scnum);
-                clist.push(id+'->'+trlist.join(';'));
+                clist.push(id+'->'+trlist.join('<;>'));
                 rlist.push(id);
                 repeatList.push(trlist[0]+'|'+trlist[1]+'|'+trlist[2]+'|'+parseFloat(trlist[3]));
                 sctotal = sctotal != 0 ? roundnum(sctotal,decimal) : costzero;
@@ -204,9 +204,9 @@ $(function(){
             }
         });
         //添加到form中list
-        $('#changelist').val(clist.join(','));
-        $('#changeRepeatList').val(repeatList.join(','));
-        $('#reductionList').val(rlist.join(','));
+        $('#changelist').val(clist.join('{,}'));
+        $('#changeRepeatList').val(repeatList.join('{,}'));
+        $('#reductionList').val(rlist.join('{,}'));
 
         //获取localstorage里的数据
         var newid = 1;
@@ -229,7 +229,7 @@ $(function(){
         var optionselect = ['m','km','m2','m3','kg','t','m3·km','总额','月','项','处','个','根','棵','块','每一试桩','桥长米','公路公里','株','组','座','元','工日','套','台班','艘班','m/处','m/道','m/座','m2/m','m3/m','m3/处','根/米','亩','m3/m2'];
         //按添加顺序输出localstorage的内容
         for(var z= 0; z< addArr.length; z++){
-            var trlist = storage.getItem('add_new_clistid_'+addArr[z]).split(';');
+            var trlist = storage.getItem('add_new_clistid_'+addArr[z]).split('<;>');
             var num2 = trlist[0];
             var name2 = trlist[1];
             var unit2 = trlist[2];
@@ -238,7 +238,7 @@ $(function(){
             var scnum = trlist[5];
             //不为空的就显示出来,全部为空的就自动删除
             if(num2 != '' || name2 != '' || price2 != '' || oamount2 != '' || scnum != ''){
-                wlist.push(addArr[z]+'->'+trlist.join(';'));
+                wlist.push(addArr[z]+'->'+trlist.join('<;>'));
 
                 var ototal2 = price2 != '' && oamount2 != '' ? roundnum(parseFloat(price2).mul(parseFloat(oamount2)),2) : '';
                 var sctotal2 = price2 != '' && scnum != '' ? roundnum(parseFloat(price2).mul(parseFloat(scnum)),decimal) : '';
@@ -256,8 +256,8 @@ $(function(){
             }
         }
         //添加到form中list
-        $('#changewhitelist').val(wlist.join(','));
-        $('#changeRepeatWhiteList').val(repeatWhiteList.join(','));
+        $('#changewhitelist').val(wlist.join('{,}'));
+        $('#changeRepeatWhiteList').val(repeatWhiteList.join('{,}'));
 
         //获取添加的空白清单
         if(status == 'addwhite'){
@@ -312,18 +312,18 @@ function checkform(){
         }
         if($('#changelist').val() != '' || $('#list .clid').length/2 != 0){
             var clistnum = $('#list .clid').length/2;
-            if($('#changelist').val() == '' || $('#changelist').val().split(',').length != clistnum){
+            if($('#changelist').val() == '' || $('#changelist').val().split('{,}').length != clistnum){
                 toastr.error('请输入所有所需变更的签约清单的申报变更数量');
                 return false;
             }
         }
         if($('#changewhitelist').val() != ''){
-            var wlist = $('#changewhitelist').val().split(',');
+            var wlist = $('#changewhitelist').val().split('{,}');
             var existempty = 0;
             var emptysite = 0;
             var pnum = '';
             $.each(wlist,function(k,v){
-                var adtrlist = v.split('->')[1].split(';');
+                var adtrlist = v.split('->')[1].split('<;>');
                 if(existempty == 1){
                     return false;
                 }
@@ -351,8 +351,8 @@ function checkform(){
     var repeatList = $('#changeRepeatList').val();
     var repeatWhiteList = $('#changeRepeatWhiteList').val();
     if (repeatList !== '' || repeatWhiteList !== '') {
-        repeatList = repeatList.split(',');
-        repeatWhiteList = repeatWhiteList.split(',');
+        repeatList = repeatList.split('{,}');
+        repeatWhiteList = repeatWhiteList.split('{,}');
         var listFlag = isRepeat(repeatList.concat(repeatWhiteList));
         if (listFlag) {
             toastr.error('不能存在相同的清单信息');

File diff suppressed because it is too large
+ 1 - 1
global/js/jlzf-change-new.min.js


+ 19 - 19
global/js/jlzf-change-pnumset.js

@@ -407,9 +407,9 @@ $(function(){
                 $('#filesshow').append(filestr);
                 //添加到form中
                 if($('#changeatt').val() != ''){
-                    var attlist = $('#changeatt').val().split(',');
+                    var attlist = $('#changeatt').val().split('{,}');
                     attlist.push(response.files.id);
-                    $('#changeatt').val(attlist.join(','));
+                    $('#changeatt').val(attlist.join('{,}'));
                 }else{
                     $('#changeatt').val(response.files.id);
                 }
@@ -458,14 +458,14 @@ $(function(){
             newsort++;
         });
         filenum = newsort;
-        var attlist = $('#changeatt').val().split(',');
+        var attlist = $('#changeatt').val().split('{,}');
         $.each(attlist,function(k,v){
             if(v == fid){
                 attlist.splice(k,1);
                 return false;
             }
         });
-        $('#changeatt').val(attlist.join(','));
+        $('#changeatt').val(attlist.join('{,}'));
         $.ajax({
             type: 'post',
             url: '/change/file/delete',
@@ -494,7 +494,7 @@ $(function(){
 
     //modal取消事件,还原旧保存的数据
     $('#cancellist').click(function () {
-        var reductionlist = $('#reductionList').val().split(',');
+        var reductionlist = $('#reductionList').val().split('{,}');
         //先删所有后还原
         var $rowtr = $('#addlist').find('tbody').children('tr');
         $rowtr.removeClass('success');
@@ -764,11 +764,11 @@ function updateandgetwhitelist(newid,$thisstr){
     adtrlist[3] = $thisstr.children('td').eq(3).children('input').val();
     adtrlist[4] = $thisstr.children('td').eq(4).children('input').val();
     adtrlist[5] = $thisstr.children('td').eq(6).children('input').val();
-    var adtrliststr = adtrlist.join(';');
+    var adtrliststr = adtrlist.join('<;>');
     //添加到form中
     if($('#changewhitelist').val() != ''){
-        var wlist = $('#changewhitelist').val().split(',');
-        var repeatList = $('#changeRepeatWhiteList').val().split(',');
+        var wlist = $('#changewhitelist').val().split('{,}');
+        var repeatList = $('#changeRepeatWhiteList').val().split('{,}');
         var exist = 0;
         $.each(wlist,function(k,v){
             var wlistid = v.split('->')[0];
@@ -795,8 +795,8 @@ function updateandgetwhitelist(newid,$thisstr){
             wlist.push(newid+'->'+adtrliststr);
             repeatList.push(adtrlist[0]+'|'+adtrlist[1]+'|'+adtrlist[2]+'|'+parseFloat(adtrlist[3]));
         }
-        $('#changewhitelist').val(wlist.join(','));
-        $('#changeRepeatWhiteList').val(repeatList.join(','));
+        $('#changewhitelist').val(wlist.join('{,}'));
+        $('#changeRepeatWhiteList').val(repeatList.join('{,}'));
     }else{
         $('#changewhitelist').val(newid+'->'+adtrliststr);
         $('#changeRepeatWhiteList').val(adtrlist[0]+'|'+adtrlist[1]+'|'+adtrlist[2]+'|'+parseFloat(adtrlist[3]));
@@ -812,11 +812,11 @@ function updatelist(id,cnum,$thisstr){
     adtrlist[3] = $thisstr.children('td').eq(3).text();
     adtrlist[4] = $thisstr.children('td').eq(4).text();
     adtrlist[5] = cnum;
-    var adtrliststr = adtrlist.join(';');
+    var adtrliststr = adtrlist.join('<;>');
     //添加到form中list
     if($('#changelist').val() != ''){
-        var clist = $('#changelist').val().split(',');
-        var repeatList = $('#changeRepeatList').val().split(',');
+        var clist = $('#changelist').val().split('{,}');
+        var repeatList = $('#changeRepeatList').val().split('{,}');
         var exist = 0;
         $.each(clist,function(k,v){
             var clistid = v.split('->')[0];
@@ -831,8 +831,8 @@ function updatelist(id,cnum,$thisstr){
             clist.push(id+'->'+adtrliststr);
             repeatList.push(adtrlist[0]+'|'+adtrlist[1]+'|'+adtrlist[2]+'|'+parseFloat(adtrlist[3]));
         }
-        $('#changelist').val(clist.join(','));
-        $('#changeRepeatList').val(repeatList.join(','));
+        $('#changelist').val(clist.join('{,}'));
+        $('#changeRepeatList').val(repeatList.join('{,}'));
     }else{
         $('#changelist').val(id+'->'+adtrliststr);
         $('#changeRepeatList').val(adtrlist[0]+'|'+adtrlist[1]+'|'+adtrlist[2]+'|'+parseFloat(adtrlist[3]));
@@ -841,8 +841,8 @@ function updatelist(id,cnum,$thisstr){
 //移除 changelist 元素
 function removelist(id){
     //清除form中list
-    var clist = $('#changelist').val().split(',');
-    var repeatList = $('#changeRepeatList').val().split(',');
+    var clist = $('#changelist').val().split('{,}');
+    var repeatList = $('#changeRepeatList').val().split('{,}');
     $.each(clist,function(k,v){
         var clistid = v.split('->')[0];
         if(clistid == id){
@@ -851,8 +851,8 @@ function removelist(id){
             return false;
         }
     });
-    $('#changelist').val(clist.join(','));
-    $('#changeRepeatList').val(repeatList.join(','));
+    $('#changelist').val(clist.join('{,}'));
+    $('#changeRepeatList').val(repeatList.join('{,}'));
 }
 
 //统计合计金额

File diff suppressed because it is too large
+ 1 - 1
global/js/jlzf-change-pnumset.min.js


+ 18 - 18
global/js/jlzf-change-update.js

@@ -15,15 +15,15 @@ $(function(){
 
     //自动添加清单数据到localstorage里
     if($('#changelist').val() != ''){
-        var clist = $('#changelist').val().split(',');
+        var clist = $('#changelist').val().split('{,}');
         $.each(clist,function(k,v){
             var vmsg = v.split('->');
-            var vnum = vmsg[1].split(';');
+            var vnum = vmsg[1].split('<;>');
             localStorage.setItem('update_'+cid+'_clistid_'+vmsg[0],vnum[5]);
         })
     }
     if($('#changewhitelist').val() != ''){
-        var cwlist = $('#changewhitelist').val().split(',');
+        var cwlist = $('#changewhitelist').val().split('{,}');
         $.each(cwlist,function(k,v){
             var vmsg = v.split('->');
             localStorage.setItem('update_'+ cid +'_new_clistid_'+vmsg[0],vmsg[1]);
@@ -130,7 +130,7 @@ $(function(){
             var id = $(this).attr('list_id');
             //删除localstorage记录和reductionList记录
             localStorage.removeItem('update_'+ cid +'_clistid_'+id);
-            var reductionlist = $('#reductionList').val().split(',');
+            var reductionlist = $('#reductionList').val().split('{,}');
             if($.trim(reductionlist) != ''){
                 $.each(reductionlist,function(k,v){
                     if(v == id){
@@ -139,7 +139,7 @@ $(function(){
                     }
                 });
             }
-            $('#reductionList').val(reductionlist.join(','));
+            $('#reductionList').val(reductionlist.join('{,}'));
             //先删所有后还原
             var $rowtr = $('#addlist').find('tbody').children('tr');
             $rowtr.removeClass('success');
@@ -206,7 +206,7 @@ $(function(){
                     localStorage.setItem('update_'+ cid +'_clistid_'+id,scnum);
                 }
                 trlist.push(scnum);
-                clist.push(id+'->'+trlist.join(';'));
+                clist.push(id+'->'+trlist.join('<;>'));
                 rlist.push(id);
                 repeatList.push(trlist[0]+'|'+trlist[1]+'|'+trlist[2]+'|'+parseFloat(trlist[3]));
                 sctotal = parseFloat(sctotal) != 0 ? roundnum(sctotal,decimal) : costzero;
@@ -215,9 +215,9 @@ $(function(){
             }
         });
         //添加到form中list
-        $('#changelist').val(clist.join(','));
-        $('#changeRepeatList').val(repeatList.join(','));
-        $('#reductionList').val(rlist.join(','));
+        $('#changelist').val(clist.join('{,}'));
+        $('#changeRepeatList').val(repeatList.join('{,}'));
+        $('#reductionList').val(rlist.join('{,}'));
 
         //获取localstorage里的数据
         var newid = 1;
@@ -241,7 +241,7 @@ $(function(){
         var optionselect = ['m','km','m2','m3','kg','t','m3·km','总额','月','项','处','个','根','棵','块','每一试桩','桥长米','公路公里','株','组','座','元','工日','套','台班','艘班','m/处','m/道','m/座','m2/m','m3/m','m3/处','根/米','亩','m3/m2'];
         //按添加顺序输出localstorage的内容
         for(var z= 0; z< addArr.length; z++){
-            var trlist = storage.getItem('update_'+ cid +'_new_clistid_'+addArr[z]).split(';');
+            var trlist = storage.getItem('update_'+ cid +'_new_clistid_'+addArr[z]).split('<;>');
             var num2 = trlist[0];
             var name2 = trlist[1];
             var unit2 = trlist[2];
@@ -250,7 +250,7 @@ $(function(){
             var scnum = trlist[5];
             //不为空的就显示出来,全部为空的就自动删除
             if(num2 != '' || name2 != '' || price2 != '' || oamount2 != '' || scnum != ''){
-                wlist.push(addArr[z]+'->'+trlist.join(';'));
+                wlist.push(addArr[z]+'->'+trlist.join('<;>'));
 
                 var ototal2 = price2 != '' && oamount2 != '' ? roundnum(parseFloat(price2).mul(parseFloat(oamount2)),2) : '';
                 var sctotal2 = price2 != '' && scnum != '' ? roundnum(parseFloat(price2).mul(parseFloat(scnum)),decimal) : '';
@@ -268,8 +268,8 @@ $(function(){
             }
         }
         //添加到form中list
-        $('#changewhitelist').val(wlist.join(','));
-        $('#changeRepeatWhiteList').val(repeatWhiteList.join(','));
+        $('#changewhitelist').val(wlist.join('{,}'));
+        $('#changeRepeatWhiteList').val(repeatWhiteList.join('{,}'));
 
         //获取添加的空白清单
         if(status == 'addwhite'){
@@ -322,18 +322,18 @@ function checkform(){
         }
         if($('#changelist').val() != '' || $('#list .clid').length/2 != 0){
             var clistnum = $('#list .clid').length/2;
-            if($('#changelist').val() == '' || $('#changelist').val().split(',').length != clistnum){
+            if($('#changelist').val() == '' || $('#changelist').val().split('{,}').length != clistnum){
                 toastr.error('请输入所有所需变更的签约清单的申报变更数量');
                 return false;
             }
         }
         if($('#changewhitelist').val() != ''){
-            var wlist = $('#changewhitelist').val().split(',');
+            var wlist = $('#changewhitelist').val().split('{,}');
             var existempty = 0;
             var emptysite = 0;
             var pnum = '';
             $.each(wlist,function(k,v){
-                var adtrlist = v.split('->')[1].split(';');
+                var adtrlist = v.split('->')[1].split('<;>');
                 if(existempty == 1){
                     return false;
                 }
@@ -376,8 +376,8 @@ function checkform(){
     var repeatList = $('#changeRepeatList').val();
     var repeatWhiteList = $('#changeRepeatWhiteList').val();
     if (repeatList !== '' || repeatWhiteList !== '') {
-        repeatList = repeatList.split(',');
-        repeatWhiteList = repeatWhiteList.split(',');
+        repeatList = repeatList.split('{,}');
+        repeatWhiteList = repeatWhiteList.split('{,}');
         var listFlag = isRepeat(repeatList.concat(repeatWhiteList));
         if (listFlag) {
             toastr.error('不能存在相同的清单信息');

File diff suppressed because it is too large
+ 1 - 1
global/js/jlzf-change-update.min.js


+ 54 - 25
protected/controller/ChangeController.php

@@ -535,7 +535,7 @@ class ChangeController extends DooController
                     //附件添加cid
                     if(!empty($_POST['changeatt'])){
                         Doo::loadModel('changeatt');
-                        $attlist = explode(',', $_POST['changeatt']);
+                        $attlist = explode('{,}', $_POST['changeatt']);
                         foreach($attlist as $ak => $av){
                             $changeAtt = new ChangeAtt();
                             $changeAtt->id = $av;
@@ -595,10 +595,10 @@ class ChangeController extends DooController
                     Doo::loadModel('changeauditlist');
                     $total = 0;
                     if(!empty($_POST['changelist'])){
-                        $clist = explode(',',$_POST['changelist']);
+                        $clist = explode('{,}',$_POST['changelist']);
                         foreach($clist as $ck => $cv){
                             $clistid = explode('->',$cv)[0];
-                            $clistarr = explode(';',explode('->',$cv)[1]);
+                            $clistarr = explode('<;>',explode('->',$cv)[1]);
                             if(!empty($clistarr[0]) && !empty($clistarr[1]) && is_numeric($clistarr[3]) && is_numeric($clistarr[4]) && is_numeric($clistarr[5])){
                                 $changelistArr = $this->change->getChangeListbyid($clistid);
                                 if(!empty($changelistArr)){
@@ -640,9 +640,9 @@ class ChangeController extends DooController
                         }
                     }
                     if(!empty($_POST['changewhitelist'])){
-                        $wlist = explode(',',$_POST['changewhitelist']);
+                        $wlist = explode('{,}',$_POST['changewhitelist']);
                         foreach($wlist as $wk => $wv){
-                            $wlistarr = explode(';',explode('->',$wv)[1]);
+                            $wlistarr = explode('<;>',explode('->',$wv)[1]);
                             if(!empty($wlistarr[0]) && !empty($wlistarr[1]) && is_numeric($wlistarr[3]) && is_numeric($wlistarr[4]) && is_numeric($wlistarr[5])){
                                 $total += todecimal(floatval($wlistarr[3])*floatval($wlistarr[5]),$decimalnum['costdnum']);
 
@@ -1224,7 +1224,7 @@ class ChangeController extends DooController
                     //附件添加cid
                     if(!empty($_POST['changeatt'])){
                         Doo::loadModel('changeatt');
-                        $attlist = explode(',', $_POST['changeatt']);
+                        $attlist = explode('{,}', $_POST['changeatt']);
                         foreach($attlist as $ak => $av){
                             $changeAtt = new ChangeAtt();
                             $changeAtt->id = $av;
@@ -1273,10 +1273,10 @@ class ChangeController extends DooController
                     //清单添加,不分顺序,最终展示按清单编号排序
                     $total = 0;
                     if(!empty($_POST['changelist'])){
-                        $clist = explode(',',$_POST['changelist']);
+                        $clist = explode('{,}',$_POST['changelist']);
                         foreach($clist as $ck => $cv){
                             $clistid = explode('->',$cv)[0];
-                            $clistarr = explode(';',explode('->',$cv)[1]);
+                            $clistarr = explode('<;>',explode('->',$cv)[1]);
                             if(!empty($clistarr[0]) && !empty($clistarr[1]) && is_numeric($clistarr[3]) && is_numeric($clistarr[4]) && is_numeric($clistarr[5])){
                                 $changelistArr = $this->change->getChangeListbyid($clistid);
                                 if(!empty($changelistArr)){
@@ -1318,9 +1318,9 @@ class ChangeController extends DooController
                         }
                     }
                     if(!empty($_POST['changewhitelist'])){
-                        $wlist = explode(',',$_POST['changewhitelist']);
+                        $wlist = explode('{,}',$_POST['changewhitelist']);
                         foreach($wlist as $wk => $wv){
-                            $wlistarr = explode(';',explode('->',$wv)[1]);
+                            $wlistarr = explode('<;>',explode('->',$wv)[1]);
                             if(!empty($wlistarr[0]) && !empty($wlistarr[1]) && is_numeric($wlistarr[3]) && is_numeric($wlistarr[4]) && is_numeric($wlistarr[5])){
                                 $total += todecimal(floatval($wlistarr[3])*floatval($wlistarr[5]),$decimalnum['costdnum']);
 
@@ -1436,12 +1436,12 @@ class ChangeController extends DooController
                         $oneclist = $this->change->getChangeListbyid($cv['lid']);
                         if($cv['lid'] != 0 && !empty($oneclist)){
                             array_push($changeidlist,$cv['lid']);
-                            array_push($changelist,$cv['lid'].'->'.$cv['lnum'].';'.$cv['lname'].';'.$cv['unit'].';'.$cv['unitprice'].';'.$cv['oamount'].';'.$cv['camount']);
+                            array_push($changelist,$cv['lid'].'->'.$cv['lnum'].'<;>'.$cv['lname'].'<;>'.$cv['unit'].'<;>'.$cv['unitprice'].'<;>'.$cv['oamount'].'<;>'.$cv['camount']);
                             $clist[$ck]['iswhite'] = 0;
                             array_push($changeRepeatList, $cv['lnum'].'|'.$cv['lname'].'|'.$cv['unit'].'|'.$cv['unitprice']);
                         }else{
                             $clist[$ck]['add'] = $addnum;
-                            array_push($changewhitelist,$addnum.'->'.$cv['lnum'].';'.$cv['lname'].';'.$cv['unit'].';'.$cv['unitprice'].';'.$cv['oamount'].';'.$cv['camount']);
+                            array_push($changewhitelist,$addnum.'->'.$cv['lnum'].'<;>'.$cv['lname'].'<;>'.$cv['unit'].'<;>'.$cv['unitprice'].'<;>'.$cv['oamount'].'<;>'.$cv['camount']);
                             $addnum++;
                             $clist[$ck]['changeunit'] = $this->changeUnit;
                             $clist[$ck]['iswhite'] = 1;
@@ -1451,15 +1451,15 @@ class ChangeController extends DooController
                         $ototalnum += $osum;
                     }
                 }
-                $this->data['changelist'] = implode(',',$changelist);
-                $this->data['changewhitelist'] = implode(',',$changewhitelist);
+                $this->data['changelist'] = implode('{,}',$changelist);
+                $this->data['changewhitelist'] = implode('{,}',$changewhitelist);
                 $this->data['changeidlist'] = implode(',',$changeidlist);
                 $this->data['ototalnum'] = $ototalnum;
                 $this->data['ctotalnum'] = todecimal($ctotalnum,$decimalnum['costdnum']);
                 $this->data['clist'] = $clist;
 
-                $this->data['changeRepeatList'] = implode(',',$changeRepeatList);
-                $this->data['changeRepeatWhiteList'] = implode(',',$changeRepeatWhiteList);
+                $this->data['changeRepeatList'] = implode('{,}',$changeRepeatList);
+                $this->data['changeRepeatWhiteList'] = implode('{,}',$changeRepeatWhiteList);
 
                 //获取已添加的附件列表
                 $attlist = $this->change->getChangeAttListbycid($cid);
@@ -1663,7 +1663,7 @@ class ChangeController extends DooController
             $fileArray = $this->change->getChangeAttbyFid($fid);
             if (!empty($fileArray)) {
                 $pathf = DOO::conf()->SITE_PATH;
-                $this->file_down($pathf.$fileArray['filepath'],$fileArray['filename'].'.'.$fileArray['fileext']);
+                $this->file_down($pathf.$fileArray['filepath'], $fileArray['filesize'], $fileArray['filename'].'.'.$fileArray['fileext']);
             }
         }
     }
@@ -1862,18 +1862,47 @@ class ChangeController extends DooController
      * @param $filepath 文件路径
      * @param $filename 文件名称
      */
-    public function file_down($filepath,$filename) {
+//    public function file_down($filepath,$filename) {
+//        if (ob_get_length() !== false)
+//            @ob_end_clean();
+//        header('Content-Description: File Download');
+//        header('Content-Type: application/octet-stream');
+//        header('Content-Disposition: attachment; filename='.basename($filename));
+//        header('Content-Transfer-Encoding: binary');
+//        header('Expires: 0');
+//        header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
+//        header('Pragma: public');
+//        header('Content-Length: ' . filesize($filepath));
+//        @readfile($filepath);
+//        exit;
+//    }
+
+    /**
+     * 文件下载
+     * @param $filepath 文件路径
+     * @param $filename 文件名称
+     */
+    function file_down($filepath, $filesize, $filename = '')
+    {
+        if (!$filename)
+            $filename = basename($filepath);
+        if ($this->is_ie())
+            $filename = rawurlencode($filename);
+        $filetype = $this->fileext($filename);
+//        $filesize = sprintf("%u", filesize($filepath));
         if (ob_get_length() !== false)
             @ob_end_clean();
-        header('Content-Description: File Download');
-        header('Content-Type: application/octet-stream');
-        header('Content-Disposition: attachment; filename='.basename($filename));
-        header('Content-Transfer-Encoding: binary');
-        header('Expires: 0');
-        header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
         header('Pragma: public');
-        header('Content-Length: ' . filesize($filepath));
+        header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
+        header('Cache-Control: no-store, no-cache, must-revalidate');
+        header('Cache-Control: pre-check=0, post-check=0, max-age=0');
+        header('Content-Transfer-Encoding: binary');
+        header('Content-Encoding: none');
+        header('Content-type: ' . $filetype);
+        header('Content-Disposition: attachment; filename="' . $filename . '"');
+        header('Content-length: ' . $filesize);
         @readfile($filepath);
+        exit;
     }
 
 }