ThinkPHP+uploadify+upload+PHPExcel无刷新导入数据

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

前端HTML+JQuery 备注Jquery需要1.x版本,不能用2.x版本

1.引入必要文件及上传input

<load file="__PUBLIC__/js/jquery-1.11.3.min.js" />

<load file="__PUBLIC__/uploadify/jquery.uploadify.min.js" />

<load file="__PUBLIC__/uploadify/uploadify.CSS" />

<inputtype="file"class=""id="student"name="student">

2.uploadify使用操作

<script>$(function(){//Thinkphp上传地址varupload = "{:U(MODULE_NAME.'/Student/upload')}";//ThinkPHPsessionID的提交变量//'VAR_SESSION_ID'=>'session_id',在ThinkPHP/Conf/convention.php中进行配置,默认关闭的需要开启varsid = '{:session_id()}';//导入数据地址vardaoruUrl = "{:U(MODULE_NAME.'/Student/daoruHandle')}"//Amaze ui 模态框varmodal = $('#my-modal-loading');//uploadify使用方法$('#student').uploadify({'swf' : '__PUBLIC__/uploadify/uploadify.swf','uploader': upload,'buttonText' : '选择文件...','width':120,'height':30,'formData':{'session_id':sid},'fileTypeExts':'*.xls',//开始上传弹出模态框'onUploadStart' :function(file) {

$('#alert-content').html('正在上传文件');

modal.modal();

},//上传成功关闭模态框,并用后台函数导入数据'onUploadSuccess':function(file, data, response){

$('#alert-content').html('正在导入数据');

data= eval("("+data+")");

$.Ajax({

type:'POST',

url: daoruUrl,

data: {'file':data.file},

success:function(retdata){

modal.modal('close');if(retdata==1){

alert('导入成功');

}else{

alert('导入失败');

}

},

dataType:'json'});

}

});

});</script>

3、ThinkPHP控制器上传操作:备注需要引入Upload.class.php空间

functionupload(){$config=array('maxSize' => 3145728,

'rootPath' => './Uploads/',

'savePath' => '',

'saveName' =>array('uniqid',''),

'exts' =>array('xls'),

'autoSub' =>true,

'subName' =>array('date','Ymd'),);$upload=newUpload($config);//上传文件$info=$upload->upload();if(!$info) {//上传错误提示错误信息$this->error($upload->getError());

}else{//上传成功 获取上传文件信息$file=$info['Filedata']['savepath'].$info['Filedata']['savename'];

}//p($info);$data=array('file'=>'./Uploads/'.$file,);echojson_encode($data);

}

4.导入数据进去MySQL

//导入数据处理functiondaoruHandle(){$file= I('file');$ExcelData= excel_to_mysql($file);foreach($excelData['data']as$row){$data=array('xuehao'=>$row['xuehao'],

'xingming'=>$row['xingming'],

'xingbie'=>($row['xingbie']=='男')?1:0,

'mima'=>md5($row['mima']),);

M('student')->add($data);

}echo1;

}

5.PHPExcel读取Excel文件返回数据函数

functionexcel_to_mysql($file){//导入PHPExcel第三方类库

//vendor('PHPExcel.PHPExcel');import('Classes.PHPExcel',COMMON_PATH,'.php');//实例化PHPExcel类,用于接收Excel文件$PHPExcel=newPHPExcel();//读取Excel文件类实例化$PHPReader=newPHPExcel_reader_Excel5();//检测Excel版本是否可读if(!$PHPReader->canRead($file)){$PHPReader=newPHPExcel_Reader_Excel2007();if(!$PHPReader->canRead($file))returnarray('error'=>1);//未知版本的Excel}//读取Excel文件$PHPExcel=$PHPReader->load($file);//获得Excel中表的数量$sheetCount=$PHPExcel->getSheetCount();//获得第一张工作表$sheet=$PHPExcel->getSheet(0);//获得表中最大数据列名$column=$sheet->getHighestColumn();//获得表中最大数据行名$row=$sheet->getHighestRow();//循环获得表中数据for($i=1;$i<=$row;$i++){$data[] =array(//通过工作表对象的getCell方法获得单元格 getValue方法获得该单元格数值'xuehao'=>$sheet->getCell('A'.$i)->getValue(),

'xingming'=>$sheet->getCell('B'.$i)->getValue(),

'xingbie'=>$sheet->getCell('C'.$i)->getValue(),

'mima'=>$sheet->getCell('D'.$i)->getValue(),);

}//释放工作表对象unset($sheet);//释放读取Excel文件对象unset($PHPReader);//释放Excel文件对象unset($PHPExcel);//返回数据returnarray('error'=>0,'data'=>$data);

}

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航