Ejemplo n.º 1
1
 /**
  * 時間調整のテスト
  * @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());
 }
Ejemplo n.º 2
0
 /**
  * 渡されたファイルを全て処理して、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();
 }