/** * 時間調整のテスト * @group post */ public function testPostSubSecond() { $_POST['cmd'] = "all"; $_POST['text_addsecond'] = "-10"; $this->engine->procConv(); // 時間のチェック $pel = new CPel($_SESSION['tempfolder'] . "/" . $_FILES['input_file']['name'][0]); $this->assertEquals('2015:07:11 09:21:36', $pel->getDateTime()); $pel = new CPel($_SESSION['tempfolder'] . "/" . $_FILES['input_file']['name'][1]); $this->assertEquals('2015:07:15 13:21:50', $pel->getDateTime()); $pel = new CPel($_SESSION['tempfolder'] . "/" . $_FILES['input_file']['name'][2]); $this->assertEquals('2015:07:15 13:22:00', $pel->getDateTime()); }
/** * 渡されたファイルを全て処理して、tempfolderに入れる */ private function procAll() { // データを開始して、テンポラリを得る $this->procStart(); // 処理開始 $num = count($_FILES['input_file']['name']); for ($i = 0; $i < $num; $i++) { // 保存先ファイル名 $dest = $_SESSION['tempfolder'] . "/" . $_FILES['input_file']['name'][$i]; $imagick = new CAm1Imagick($_FILES['input_file']['tmp_name'][$i]); if ($_SESSION['isresize'] == 'on') { $imagick->resize($_SESSION['width'] - 0, $_SESSION['height'] - 0); } $geo = $imagick->getGeometry(); $imagick->writeFile($dest); $imagick->clear(); // EXIF調整 $pel = new CPel($dest); //// サイズ書き込み $pel->setSize($geo['width'], $geo['height']); //// 日時 if ($_SESSION['filetime'] == 'on') { // ファイル名が時間を表しているか確認 if (preg_match('/^\\d{5,6}\\./', $_FILES['input_file']['name'][$i])) { $dt = $_SESSION['filedate']; // 日付が指定されているか if (strlen($dt) < 4) { $dt = "" . preg_split("/ /", $pel->getDateTime())[0]; if (!$dt) { $this->response = array("result" => "error", "message" => "[" . $_FILES['input_file']['name'][$i] . "]に撮影時間を追加するには、日付を指定してください。"); http_response_code(500); return; } } // :を-に変換 $dt = preg_replace("/:/", "-", $dt); $tm = preg_split("/\\./", $_FILES['input_file']['name'][$i]); $datetime = $dt . " " . $tm[0]; $pel->setDateTime($datetime); } } // 時間調整 if ($_SESSION['addsecond'] != 0) { $now = (new DateTime($pel->getDateTime()))->getTimestamp() + $_SESSION['addsecond']; $newdt = (new DateTime())->setTimestamp($now); $pel->setDateTime($newdt->format('c')); } //// 保存 $pel->saveFile($dest); } // フォルダーを圧縮して返す $this->downloadZip(); }