php 封装原生数据导入的方法(csv文件格式)
//前端---部分代码
<form class="form-inline" style="margin-top: 20px" method="post" action="/admin/commerce/import" enctype="multipart/form-data" style="display:inline-block">
<div class="form-group">
<label for="commerce_file">选择文件</label>
<input class="form-control input-sm" type="file" name="commerce_file">
</div>
<button type="submit" class="btn btn-info">数据导入按钮</button>
</form> //后端---原生封装导入方法
public function actionimport()
{
if(!$_FILES['commerce_file']['name'])
{
$this->success('请选择csv格式文件');
}
if($_FILES['commerce_file']['size'] >= '2097152')//2M
{
$this->success('文件不能超过2M');
}
//获取储存的临时文件名
$csv_file = $_FILES['commerce_file']['tmp_name']; //打开文件获取可读权限
$file = fopen($csv_file,"r"); //输出文本中所有的行,直到文件结束为止
while(! feof($file))
{
//函数从文件指针中读入一行并解析CSV 段
$data_line = fgetcsv($file); if($data_line)
{
foreach($data_line as $k => $v)
{
//指定文件从gbk编码转换,为utf-8编码
$data_line[$k] = iconv('gbk','utf-8',$v);
}
$data[] = $data_line;
}
}
//关闭打开文件
fclose($file);
$first = $data[0];
//设定表头标题名称
$name = array('ID','名称');
if($first)
{
foreach($first as $k => $v)
{
if($v != $name[$k])
{
$this->success('文件格式错误,请查看文件格式核实');
}
}
}
if($data)
{
//删除第一行数据
unset($data[0]);
//统计插入数量
$sum = 0;
foreach($data as $v)
{
//插入数据方法自己根据框架定义
$rs = Yii::app()->getDb()->createCommand()->insert('sdk_commerce', array(
'id' => $v[0],
'name' => $v[1]
));
$sum += $rs;
}
$this->success('成功导入<font color=red><b>'.$sum.'</b></font>条数据','/admin/commerce/list/');
}
}
php 封装原生数据导入的方法(csv文件格式)的更多相关文章
- php 封装原生数据导出的方法(csv文件格式)和csv文件中长数字自动变成科学计数法的处理
如何解决上图长数字自动转换处理? CSV文件中长数字自动变成科学计数法处理.用程序导出的csv文件,当字段中有比较长的数字字段存在时,在用excel软件查看csv文件时就会变成科学计数法的表现形式. ...
- MySQL数据导入导出方法与工具mysqlimport
MySQL数据导入导出方法与工具mysqlimport<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office ...
- excel中的数据导入oracle方法
SQL_loader批量上传数据 1. 注释 在工作中,很多时候会遇到如下情况:需要将excel中的数据批量上传到ORACLE表中.如果是小数据量,如几十条至几百条,那么用plsql dev工具 ...
- mysql数据导入导出方法总结
MySQL数据备份还原方式总结: 一.将数据导入到指定的数据库 第一种导入方式: (linux下和Windows 下语法是一样的,只是路径的书写方式不同而已) 1.创建一个空数据库 2.进入MySQL ...
- sql server数据导入导出方法统计
常用的数据量不是很大的情况的几种方法:转载地址 http://www.cnblogs.com/changbluesky/archive/2010/06/23/1761779.html 大数据量的推荐导 ...
- MongoDB数据导入导出成csv或者json
1. 从远程数据表拉取数据到本地json文件 mongoexport --host 远程服务器IP --port 远程服务器端口 --username 远程数据库用户名 --password 远程数据 ...
- 基于ElementUI封装Excel数据导入组件
由于前端项目使用的是Vue-cli3.0 + TypeScript的架构,所以该组件也是基于ts语法封装的,组件的完整代码如下: <template> <div id="m ...
- poi大数据导入解决方法
This one comes up quite a lot, but often the reason isn't what you might initially think. So, the fi ...
- Python数学建模-02.数据导入
数据导入是所有数模编程的第一步,比你想象的更重要. 先要学会一种未必最佳,但是通用.安全.简单.好学的方法. 『Python 数学建模 @ Youcans』带你从数模小白成为国赛达人. 1. 数据导入 ...
随机推荐
- 回调-> 观察者模式->反应堆模式
关于回调: 回调是观察者模式以及反应堆模式的基础 一句话,回调就是一种双向调用模式,什么意思呢,就是说,被调用方在被调用时也会调用对方,这就叫回调.“If you call me, i will ca ...
- nodejs基础-nvm和npm
nvm npm 更新 npm install npm@latest -g 本地安装 npm install 包名称 require(”包名“) 全局安装 npm install 包名 -g 可以直接作 ...
- 洛谷P1265 公路修建——prim
给一手链接 https://www.luogu.com.cn/problem/P1265 这道题本质上就是最小生成树,题目描述就是prim的思想 TIP:注意稠密图和稀疏图的区别 #include&l ...
- Java相关面试题总结+答案(四)
[反射] 57. 什么是反射? 反射是在运行状态中,对于任意一个类,都能够知道该类的所有属性和方法,对于任意一个对象,都能够获得该对象的任一属性和方法:这种动态获取信息以及动态调用对象的方法的功能称之 ...
- vim插件管理器:Vundle的介绍及安装(很全)(转载)
转载自:https://blog.csdn.net/zhangpower1993/article/details/52184581 背景 Vim缺乏默认的插件管理器,所有插件的文件都散布在~/.vim ...
- Java-多线程第一篇多线程相关认识(1)
1.单线程进程 如果程序执行某行代码时遇到了阻塞,则程序将会停滞在该处. 2.进程代表着一个程序,程序是静态的,进程是动态的程序. 进程是系统进行资源分配和调度的一个独立单位.关于进程有如下3个特征: ...
- 爬虫之Js混淆&加密案例
需求: 中国空气质量在线监测分析平台是一个收录全国各大城市天气数据的网站,包括温度.湿度.PM 2.5.AQI 等数据,链接为:https://www.aqistudy.cn/html/city_de ...
- 关于自带的sql developer修改java.exe版本的解决办法
第一次安装oracle11gR2后,就很好奇的点了一下,当点击应用程序开发下的sql developer后,就弹出一个窗口,要选择一个java.exe的路径,我就讲本机中的JDK1.7下的java.e ...
- 在html模板里面加python函数(simple_tag与filter)
自定义函数 simple_tag a. app下创建templatetags目录 b. 任意xxoo.py文件 c. 创建template对象 register d. @register.simple ...
- ASP.NET MVC5 +Abp 模板(Startup Templates)
官网:https://aspnetboilerplate.com/Templates 系统登陆初始账号:admin 密码:123qwe 调试错误: 1.在多语句事务内不允许使用 CREATE DATA ...