1. html 页面代码如下:
<form action="{:U('save')}" method="post" enctype="multipart/form-data" style='margin-bottom: 0;' />
<fieldset>
<div class='span7 offset1'>
<div class='control-group'>
<label class='control-label'>导入数据:</label>
<div class='controls'>
<label class='radio inline'>
<input type='file' name="file" value="" />
上传文档
</label>
</div>
</div>
</div>
</fieldset>
<div class='text-right'>
<button type="submit" class="btn btn-primary submit" >提交信息</button>
<a class='btn btn-info' href="{:U('import')}">
<i class='icon-chevron-left'></i>
返回
</a>
</div>
</form>
2. 后台接收文件代码:
public function save(){
if (!empty($_FILES)){
$upload = new \Think\Upload(); // 实例化上传类
$upload->maxSize = 10485760 ; // 设置附件上传大小
$upload->exts = array('xls','xlsx'); // 设置附件上传类型
$upload->rootPath = './Public/Excel/'; // 设置附件上传根目录
$upload->autoSub = false; // 将自动生成以photo后面加时间的形式文件夹,关闭
// 上传文件
$info = $upload->upload(); // 上传文件
$exts = $info['file']['ext'];
//print_r($exts);die; // 获取文件后缀
$filename = $upload->rootPath.$info['file']['savename']; // 生成文件路径名
if(!$info) { // 上传错误提示错误信息
$this->error($upload->getError());
}else{ // 上传成功
Vendor('PHPExcel');
$PHPExcel = new \PHPExcel();
// 创建PHPExcel对象,注意,不能少了\
if ($exts == 'xls') {
// 如果excel文件后缀名为.xls,导入这个类
Vendor('PHPExcel.Reader.Excel5');
$PHPReader= new \PHPExcel_Reader_Excel5();
} else if ($exts == 'xlsx') {
Vendor('PHPExcel.Reader.Excel2007');
$PHPReader =new \PHPExcel_Reader_Excel2007();
}
$PHPExcel =$PHPReader->load($filename, $encode = 'utf-8'); //加载文件内容,编码utf-8
$excel_array=$PHPExcel->getSheet(0)->toArray(); //转换为数组格式
array_shift($excel_array); //删除第一个数组(标题);
$city = [];
$i=0;
foreach($excel_array as $k=>$v) {
$click_time = strtotime($v[2]);//点击时间转为时间戳
$active_time = strtotime($v[2]);//激活时间转为时间戳
$city[$k]['adid'] = $v[0];
$city[$k]['idfa'] = $v[1];
$city[$k]['udid'] = $v[4];
$city[$k]['model'] = $v[5];
$city[$k]['os'] = $v[6];
$city[$k]['ip'] = $v[7];
$city[$k]['add_time'] = $click_time;
$city[$k]['act_time'] = $active_time;
$i++;
}
# 批量添加数据入库
$ex=M('api_check_udid')->addAll($city);
if($ex){
$this->success("导入成功");
}else{
$this->error("导入失败,原因可能是excel表中格式错误","5");// 提示错误
}
}
}else {
$this->display();
}
}
PHPExcel 类下载地址:
链接:https://pan.baidu.com/s/1FAuKLhaHOBYA3jK23rqq5g
提取码:hzzo