《PHP教程:基于ThinkPHP+uploadify+upload+PHPExcel 無刷新導入數據》要點:
本文介紹了PHP教程:基于ThinkPHP+uploadify+upload+PHPExcel 無刷新導入數據,希望對您有用。如果有疑問,可以聯系我們。
相關主題:thinkphp教程
PHP學習廢話不多說,直接給大家貼代碼了,代碼附有注釋,相信大家都能看懂的,有不明白的地方歡迎給我留言.
PHP學習前端HTML+JQuery? 備注Jquery需要1.x版本,不能用2.x版本
PHP學習1.引入必要文件及上傳input
PHP學習
<load file="__PUBLIC__/js/jquery-1.11.3.min.js" />
<load file="__PUBLIC__/uploadify/jquery.uploadify.min.js" />
<load file="__PUBLIC__/uploadify/uploadify.css" />
<input type="file" class="" id="student" name="student">
PHP學習2.uploadify使用操作
PHP學習
<script>
$(function(){
//ThinkPHP上傳地址
var upload = "{:U(MODULE_NAME.'/Student/upload')}";
//ThinkPHP sessionID的提交變量
//'VAR_SESSION_ID'=>'session_id',在ThinkPHP/Conf/convention.php中進行配置,默認關閉的需要開啟
var sid = '{:session_id()}';
//導入數據地址
var daoruUrl = "{:U(MODULE_NAME.'/Student/daoruHandle')}"
//Amaze ui 模態框
var modal = $('#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>
PHP學習3、ThinkPHP控制器上傳操作:備注需要引入Upload.class.php空間
PHP學習
function upload(){
$config = array(
'maxSize' => 3145728,
'rootPath' => './Uploads/',
'savePath' => '',
'saveName' => array('uniqid',''),
'exts' => array('xls'),
'autoSub' => true,
'subName' => array('date','Ymd'),
);
$upload = new Upload($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,
);
echo json_encode($data);
}
PHP學習4.導入數據進去mysql
PHP學習
//導入數據處理
function daoruHandle(){
$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);
}
echo 1;
}
PHP學習5.PHPExcel讀取Excel文件返回數據函數
PHP學習
function excel_to_mysql($file){
//導入PHPExcel第三方類庫
//vendor('PHPExcel.PHPExcel');
import('Classes.PHPExcel',COMMON_PATH,'.php');
//實例化PHPExcel類,用于接收Excel文件
$PHPExcel = new PHPExcel();
//讀取Excel文件類實例化
$PHPReader = new PHPExcel_reader_Excel5();
//檢測Excel版本是否可讀
if(!$PHPReader->canRead($file)){
$PHPReader = new PHPExcel_Reader_Excel2007();
if(!$PHPReader->canRead($file)) return array('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);
//返回數據
return array('error'=>0,'data'=>$data);
}
PHP學習通過以上代碼實現了ThinkPHP+uploadify+upload+PHPExcel 無刷新導入數據,希望對大家有所幫助.
維易PHP培訓學院每天發布《PHP教程:基于ThinkPHP+uploadify+upload+PHPExcel 無刷新導入數據》等實戰技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養人才。
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/8723.html