php解析.csv文件
public function actionImport() {
//post请求过来的
$fileName = $_FILES['file']['name'];
$fileTmpName = $_FILES['file']['tmp_name'];
//判断是否选择了上传的文件
if (empty($fileName)) {
$data['message'] = "请选择要上传的文件";
return $this->render("batch_add", $data);
}
//判断选择上传的文件是不是csv格式
if (explode(".", $fileName)[1] != "csv") {
$data['message'] = "请选择csv格式的文件上传";
return $this->render("batch_add", $data);
}
//创建一个空数组,预放imageUrl
$imageCollection = [];
//打开要读的文件
$handle = fopen($fileTmpName, 'r');
//解析csv文件
while (!feof($handle)) {
//fgets方法按行读
$result = fgets($handle);
//判断读到的每一行是否有值
if (!empty($result)) {
$arrResult = explode(",", $result);
$name = $arrResult[0];
$age = $arrResult[1];
$gender = $arrResult[2];
//图片的原路径
$imagePath = $arrResult[3];
//图片的名字
$image = basename($imagePath);
$data['message'] = Person::savePerson($name, $age, $gender, $image);
if ($data['message'] == 'add successful') {
//将每个图片的uri放到数组中
array_push($imageCollection, $imagePath);
}
}
}
//关闭文件流
fclose($handle);
//关闭文件流之后才能上传图片,注意:流和流是不能嵌套使用的
if (!empty($imageCollection)) {
foreach ($imageCollection as $value) {
//将图片上传到服务器上
move_uploaded_file($imagePath, dirname(__DIR__) . '/web/images/'.date("Ymd").'/'.$image);
}
}
return $this->render("batch_add", $data);
}
php解析.csv文件的更多相关文章
- [cocos2dx utils] cocos2dx读取,解析csv文件
在我们的游戏中,经常需要将策划的数值配置成csv文件,所以解析csv文件就是一个很common的logic, 例如如下csv文件: 下面是一个基于cocos2dx 2.2.4的实现类: #ifndef ...
- Qt解析CSV文件
最近需要解析Excel文件,于是顺带写了解析CSV的代码 定义数据类型LX::Sheet #ifndef LX_H #define LX_H #include <QString> #inc ...
- .NET 上传并解析CSV文件存库
1.前端: 放置浏览按钮 <div class="row inner_table text-center"> <input id="fileId&quo ...
- java opencsv解析csv文件
记一次使用opencsv解析csv文件时碰到的坑 最近在开发过程中需要解析csv文件,公司用的解析工具是opencsv,在根据opencsv的官方文档去解析时发现csv文件中含有繁体字,使用其自带的C ...
- 解析 csv文件 java ***最爱那水货
/** * csv文件解析 <br> * wx 微信明细数据 第1行是标题 ,最后2行 是总结 提取数据需要过滤<br> * zfb 支付宝明细数据 前4行 和最后4行是总结 ...
- 如何用Java解析CSV文件
首先看一下csv文件的规则: csv(Comma Separate Values)文件即逗号分隔符文件,它是一种文本文件,可以直接以文本打开,以逗号分隔.windows默认用excel打开.它的格式包 ...
- CSV文件解析工具
package com.common.util; import java.io.BufferedReader; import java.io.FileInputStream; import java. ...
- CSV文件解析
CSV(逗号分隔值文件格式) 逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和 ...
- 一个CSV文件解析类
import java.io.BufferedReader; import java.io.FileReader; import java.util.ArrayList; import java.ut ...
随机推荐
- Swift学习(三):闭包(Closures)
定义 闭包(Closures)是独立的函数代码块,能在代码中传递及使用. 语法 {(parameters) -> return type in statements } 注:闭包表达式语法可以使 ...
- Visual Studio 2015 Pre Secondary Installer 在哪里
安装vs2015 pre后,会自动打开Secondary Installer, 用于Cross Platform的移动开发框架,包括Cordova插件.若安装失败,启动程序位置: "D:\P ...
- awk中的system和getline的用法
system只能对命令的输出结果输出到终端. getline在awk中可以使命令的输出结果传到一个变量中保存. # awk 'BEGIN{system("date")|getlin ...
- UISearchBar控件-让我们来搞定!(转)
转载自:http://blog.sina.com.cn/s/blog_7b9d64af0101dfg8.html 最近用到搜索功能.于是,经过不断的研究,终于,有点懂了. 那就来总结一下吧,好 ...
- MySQL的insert语句的区别
SQL Server: insert into tb_articleType (articleType_name,articleType_info) values ("test", ...
- php cli配置文件问题
引言 今天在教别人使用protobuf的时候,无意中发现了一个php cli模式下的诡异问题,费了老半天的找到解决方法了,这里拿出来分享下. 问题描述 我们这边最先引入了protobuf协议,使用的是 ...
- BZOJ4285: 使者
搞出dfs序,转化为查询矩形点数,树套树搞定. #include<cstdio> #include<cstdlib> #define N 100005 #define IF e ...
- Math类
Math类:用于执行基本数学运算的方法 方法: public static int abs(int a):绝对值 public static double ceil(double a):向上取整 ...
- Tp-link TL-WR841N无线路由器端口映射到外网如何设置
针对TP-LINK的无线路由器进行演示如何设置端口映射和访问控制,演示使用的具体型号是TP-LINK TL-WR841N 3G无线路由器如何设置端口映射. 什么是端口映射? 端口映射又称端口转发,有的 ...
- SQL case
case when Value='1' then 'True' else 'False' end as 'Result'