//前端---部分代码
<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泛型知识(二)--> <? extends T>和<? super T>

    <? extends T> 和 <? super T> 是Java泛型中的“通配符(Wildcards)” 和 “边界(Bounds)”的概念 <? extends T& ...

  2. 有用的官方API和官网

    1.Bootstrap API:http://www.runoob.com/bootstrap/bootstrap-tutorial.html 2.百度地图API示例:http://lbsyun.ba ...

  3. Yii框架怎么寻找对应视图

    render()内容; public function render($view,$data=null,$return=false) { if($this->beforeRender($view ...

  4. python学习三十八天常用内置函数分类汇总

    python给我们提供丰富的内置函数,不用去写函数体,直接调用就可以运行,很方便快速给我提供开发所需要的函数. 1,查内存地址 id() 变量的内存地址 id() 2,输入输出 input()  pr ...

  5. P4132 [BJOI2012]算不出的等式

    传送门 看到这个式子就感觉很有意思 左边就是求一次函数 $y=\left \lfloor \frac{q}{p} \right \rfloor x$ 在 $x \in [0,(p-1)/2]$ 时函数 ...

  6. IEnumerable和IEnumerator 详解 分类: C# 2014-12-05 11:47 18人阅读 评论(0) 收藏

    原:<div class="article_title"> <span class="ico ico_type_Original">&l ...

  7. JVM(5)之 GC之标记

    开发十年,就只剩下这套架构体系了! >>>     堆分为年轻代和年老代.永久代是非堆内存,它又叫做方法区(一般的说法),主要存储已被加载的类信息.常量.静态变量.而该区域在java ...

  8. Java实现ArrayList

    说明都在注释: package adt.array; import java.util.Iterator; import java.util.NoSuchElementException; /** * ...

  9. Java实现二分法(折半)查找数组中的元素

    二分查找 算法思想:又叫折半查找,要求待查找的序列有序.每次取中间位置的值与待查关键字比较,如果中间位置的值比待查关键字大,则在前半部分循环这个查找的过程,如果中间位置的值比待查关键字小,则在后半部分 ...

  10. JS 页面繁简字转换

    // 本js用于客户在网站页面选择繁体中文或简体中文显示,默认是正常显示,即简繁体同时显示// 在用户第一次访问网页时,会自动检测客户端语言进行操作并提示.此功能可关闭// 本程序只在UTF8编码下测 ...