版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。undefined本文链接:https://cloud.tencent.com/developer/article/1527239
- 背景
昨天,根据业务需求我需要进行
excel
表格文件的上传,然后读取其中的数据写入数据库 那么,至少要限制一下上传文件的类型 在此,进行一下整理,欢迎指摘 … - 环境
- 前端框架: Layui 2.5.4
- 使用框架:ThinkPHP 5.1.2
- 前端配置
- 前提自然是先要对 layui 前端框架的正确引用
<link href="__LAYUI__/css/layui.css" rel="stylesheet">
<!--采用模块化方式-->
<script type="text/javascript" src="__LAYUI__/layui.js"></script>
<!-- jQuery (necessary JavaScript plugins) -->
<script type='text/javascript' src="__LAYUI__/jquery-3.2.1.min.js"></script>
- 其次,便是页面标签的布局
<button type="button"
class="layui-btn" id="uploadExcel">
<i class="layui-icon"></i>上传物流订单
</button>
- 然后,需要对 js 的代码进行配置
layui.use(['layer','upload'], function () {
var upload = layui.upload;
//指定允许上传的文件类型
upload.render({
elem: '#uploadExcel'
,url: '/api/upload/file_excel' //此处为所上传的请求路径
,accept: 'file' //普通文件
,exts: 'xls|excel|xlsx' //只允许上传压缩文件
,done: function(res){
console.log(res)
layer.msg(res.message);
}
});
});
- 接下来,便是对所获取的
excel
文件的解析处理,以我的ThinkPHP5.1.2
处理代码为例
/**
* 进行excel文件的上传读取操作
* @param Request $request
*/
public function file_excel(Request $request){
$status = 0;
if ($request->Method() == 'POST') {
$file = $request->file('file');
// 移动到框架应用根目录/upload/ 目录下
$info = $file->move('upload');
if ($info) {
//把反斜杠()替换成斜杠(/) 因为在windows下上传路是反斜杠径
$getSaveName = str_replace("\", "/", $info->getSaveName());
$fileUrl = './upload/' . $getSaveName;
//TODO 此时进行数据的解析,个人业务逻辑,此处应该修改为你自己的逻辑
$orderModel = new XorderGoods();
$status = 1;
$message = $orderModel->ajaxDealExcelOrder($fileUrl);
} else {
$message = "上传失败 " . $file->getError();
}
} else {
$message = "参数错误";
}
return showMsg($status, $message);
}
- 后续的数据处理,请参考:【
ThinkPHP5.1 excel表的导入导出操作 (PHPExcel)
】