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