//前端---部分代码
<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文件格式)的更多相关文章

  1. php 封装原生数据导出的方法(csv文件格式)和csv文件中长数字自动变成科学计数法的处理

    如何解决上图长数字自动转换处理? CSV文件中长数字自动变成科学计数法处理.用程序导出的csv文件,当字段中有比较长的数字字段存在时,在用excel软件查看csv文件时就会变成科学计数法的表现形式. ...

  2. MySQL数据导入导出方法与工具mysqlimport

    MySQL数据导入导出方法与工具mysqlimport<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office ...

  3. excel中的数据导入oracle方法

    SQL_loader批量上传数据 1.    注释 在工作中,很多时候会遇到如下情况:需要将excel中的数据批量上传到ORACLE表中.如果是小数据量,如几十条至几百条,那么用plsql dev工具 ...

  4. mysql数据导入导出方法总结

    MySQL数据备份还原方式总结: 一.将数据导入到指定的数据库 第一种导入方式: (linux下和Windows 下语法是一样的,只是路径的书写方式不同而已) 1.创建一个空数据库 2.进入MySQL ...

  5. sql server数据导入导出方法统计

    常用的数据量不是很大的情况的几种方法:转载地址 http://www.cnblogs.com/changbluesky/archive/2010/06/23/1761779.html 大数据量的推荐导 ...

  6. MongoDB数据导入导出成csv或者json

    1. 从远程数据表拉取数据到本地json文件 mongoexport --host 远程服务器IP --port 远程服务器端口 --username 远程数据库用户名 --password 远程数据 ...

  7. 基于ElementUI封装Excel数据导入组件

    由于前端项目使用的是Vue-cli3.0 + TypeScript的架构,所以该组件也是基于ts语法封装的,组件的完整代码如下: <template> <div id="m ...

  8. poi大数据导入解决方法

    This one comes up quite a lot, but often the reason isn't what you might initially think. So, the fi ...

  9. Python数学建模-02.数据导入

    数据导入是所有数模编程的第一步,比你想象的更重要. 先要学会一种未必最佳,但是通用.安全.简单.好学的方法. 『Python 数学建模 @ Youcans』带你从数模小白成为国赛达人. 1. 数据导入 ...

随机推荐

  1. java注解编程@since 1.8

    一.基本元注解: @Retention: 说明这个注解的生命周期 RetentionPolicy.SOURCE -> 保留在原码阶段,编译时忽略 RetentionPolicy.CLASS -& ...

  2. [Linux] 009 链接命令

    链接命令:ln 命令名称:ln 命令英文原意:link 命令所在路径:/bin/ln 执行权限:所有用户 语法:ln -s [原文件] [目标文件] 功能描述:生成链接文件 范例: 创建文件 /etc ...

  3. 解决MySQL在导入大文件时候,出现MySQL Server has gone away的问题

    编辑/etc/my.cnf文件,在[myslqd]节点,添加 max_allowed_packet = 64M 随后重启MySQL即可.

  4. 测试微信小程序页面的生命周期

    前言:本人是一个初学者,也是第一次写博客,敲键盘的时候还不知道发布后是什么效果,希望内容给其他初学的同学一点帮助,同时加深自己的理解.这篇随笔讲的是Page页面的生命周期,在开发中是基础中的基础,很容 ...

  5. Xcode 及 iOS 常用宏和常量

    Xcode Xcode 工程设置支持 bash 脚本及其语法,如 $(PROJECT_DIR)$(PROJECT_DIR) PROJECT_DIR 代表当前工程的绝对路径,所以 $(PROJECT_D ...

  6. query_module - 向内核查询和模块有关的各个位

    总览 #include <linux/module.h> int query_module(const char *name, int which,void *buf, size_t bu ...

  7. GC(垃圾回收器)中的算法

    GC的两种判定方法 (1) 引用计数法 给对象添加一个引用计数器,每当引用一次+1,每次失效时-1,当计数器为0时,表示对象就是不可能再被使用的. (2) 可达性分析算法 将“GC Roots”对象作 ...

  8. mysql的锁

    前言 mysql锁的概念参考如下连接: 1.http://blog.csdn.net/u013063153/article/details/53432468 2.http://www.yesky.co ...

  9. lik模糊e查询语句,索引使用效果详解

    一.like查询与索引 在oracle里的一个超级大的表中,我们的where条件的列有建索引的话,会走索引唯一扫描INDEX UNIQUE SCAN.如select * from table wher ...

  10. 【Leetcode周赛】从contest-81开始。(一般是10个contest写一篇文章)

    Contest 81 (2018年11月8日,周四,凌晨) 链接:https://leetcode.com/contest/weekly-contest-81 比赛情况记录:结果:3/4, ranki ...