\PDO::FETCH_ASSOC, \PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8mb4'" ]); if (isset($_FILES)) { $termIds = array(); // cmdid => id $paramTermId = isset($_GET['termId']) ? intval($_GET['termId']) : 0; $sql = "INSERT INTO mntn_uploads(term_id,`file_name`,`path`,`file_size`) VALUES(:termId,:fileName,:path,:fileSize)"; $stmt = $db->prepare($sql); $stmt2 = null; foreach ($_FILES as $file) { $cmdid = ''; $pos = strpos($file['name'], '_'); if ($pos !== false) { $cmdid = substr($file['name'], 0, $pos); } $termId = $paramTermId; if ($termId === 0) { if (isset($termIds[$cmdid])) { $termId = $termIds[$cmdid]; } else { if ($stmt2 == null) { $sql = "SELECT `id` FROM terminals WHERE cmdid=:cmdid"; $stmt2 = $db->prepare($sql); } if ($stmt2->execute(array('cmdid' => $cmdid))) { $row = $stmt2->fetch(); if ($row) { $termIds[$cmdid] = $row['id']; $termId = $row['id']; } } } } $fileName = date('Ymd') . '_' . uniqid('log_'); $dest = $config['term_logs_root'] . $fileName; if (!move_uploaded_file($file['tmp_name'], $dest)) { // error_log("move_uploaded_file failed: " . $dest); continue; } $res = $stmt->execute(array('termId' => $termId, 'fileName' => $file['name'], 'path' => $fileName, 'fileSize' => $file['size'])); if (!$res) { // error_log(print_r($stmt->errorInfo(), true)); } } } $result['code'] = 0; header ('Content-type: application/json; charset=utf-8'); echo json_encode($result, JSON_UNESCAPED_UNICODE);