前端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" />
<input type="file" class="" id="student" name="student">

2.uploadify使用操作

 <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>

3、ThinkPHP控制器上传操作:备注需要引入Upload.class.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);
}

4.导入数据进去mysql

//导入数据处理
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;
}

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

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);
}

ThinkPHP+uploadify+upload+PHPExcel 无刷新导入数据的更多相关文章

  1. AjaxPro实现无刷新更新数据

    使用AjaxPro实现无刷新更新数据 需求 在一个页面动态无刷新的更新后台得到的数据.要想无刷新的更新数据,需要使用Javascript能够获取后台返回的数据,然后通过第三方Javascript库(J ...

  2. thinkphp下实现ajax无刷新分页

    1.前言 作为一名php程序员,我们开发网站主要就是为了客户从客户端进行体验,在这里,thinkphp框架自带的分页类是每次翻页都要刷新一下整个页面,这种翻页的用户体验显然是不太理想的,我们希望每次翻 ...

  3. 使用AjaxPro实现无刷新更新数据

    需求 在一个页面动态无刷新的更新后台得到的数据.要想无刷新的更新数据,需要使用Javascript能够获取后台返回的数据,然后通过第三方Javascript库(JQuery等)动态更新web页面DOM ...

  4. [转]jquery 点击表格变为input可以修改无刷新更新数据

    原文地址:http://www.freejs.net/article_biaodan_43.html 之前已经发了2篇类似的文章<点击变td为input更新>和<jquery表格可编 ...

  5. Ajax技术(WEB无刷新提交数据)

    (转自:http://www.jb51.net/article/291.htm) Ajax内部交流文档一.使用Ajax的主要原因 1.通过适当的Ajax应用达到更好的用户体验: 2.把以前的一些服务器 ...

  6. MVC ajaxfileupload 实现无刷新导入或上传功能

    直接上代码吧 前台 先引用 ajaxfileupload.js <script src="~/Scripts/ajaxfileupload.js"></scrip ...

  7. Ajax:后台jquery实现ajax无刷新删除数据及demo

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA8gAAAFSCAIAAAChUmFZAAAgAElEQVR4nO29z4scWZbn2/+Hb30zi8

  8. ThinkPhp 3.2 ajax无刷新分页(未完全改完,临时凑合着用)

    临时更改后的page类(很多地方没修改...因为笔者PHP没学好..)如下: <?phpnamespace Fenye\libs; /**  file: page.class.php   完美分 ...

  9. jq实现点击表格无刷新修改数据,优化版

    <!-------------------修改密码-------------------------- > $("#pwd").live("click&quo ...

随机推荐

  1. offset

    document.body.clientWidth ==> BODY对象宽度 document.body.clientHeight ==> BODY对象高度 document.docume ...

  2. C# 知识点回顾

    一.基础知识 1.主函数:主函数是程序运行的入口. 2.数据类型: 值类型:整形(有符号.无符号)浮点型(float.double.decimal) 字符型(char.datetime) 结构体(范例 ...

  3. elegant 的长整数加法 string 实现

    string strAdd(string &v1, string &v2){ string res = ""; ; int len1 = v1.size(), le ...

  4. Android Studio 实时显示布局文件Preview窗口

    Android Studio的功能包含preview窗口, 可以查看布局(layout)的样式; 位置:app->src->main->res(资源)->layout(布局), ...

  5. 查看当前运行的SQL语句

    WITH sess AS ( SELECT es.session_id, database_name = DB_NAME(er.database_id), er.cpu_time, er.reads, ...

  6. SQL Server 移动master 数据库

    第一步: 告诉SQL Server 下次启动时master数据库的文件在哪里!我想们一定想到了(这样做是不对的,它对master不起作用,第二步开始正确的做法) alter database mast ...

  7. Linux04--文本编辑器vim

    1.Linux系统下常用的文本编辑器介绍 •  命令行方式      vi/vim: 类UNIX操作系统中常用的内置编辑器,习惯操作后功能强大.      pico或nano:一种风格很像Micros ...

  8. 在ubuntu10.0.4下更新git

    今天想到要在ubuntu10.0.4下下载android的源码学习一下.源码下载用到了git.以前安装过git以为应该没什么问题的,没想到报了 “fatal: git 1.7.2 or later r ...

  9. Mono For Android中AlarmManager的使用

    最近做了一个应用,要求如下: 程序运行之后的一段时间,分别触发3个不同的事件.当然很快就想到了Android中的AlarmManager和BroadcastReceiver.但是毕竟Mono环境和Ja ...

  10. JVM(Java虚拟机)优化大全和案例实战

    堆内存设置 原理 JVM堆内存分为2块:Permanent Space 和 Heap Space. Permanent 即 持久代(Permanent Generation),主要存放的是Java类定 ...