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); }