質問: exif_imagetype($_FILES['image']['tmp_name']); switch ($this->_imageType) { case IMAGETYPE_GIF: return 'gif'; case IMAGETYPE_JPEG: return 'jpg'; case IMAGETYPE_PNG: return 'png'; // それ以外の拡張子だった時 default: throw new \Exception('JPGE・PNG・GIF形式の画像をアップロードしてください'); } } /* エラーチェック --------------------------------------------- */ private function _validateUpload() { // var_dump($_FILES); // exit; // $_FILES['image'] がきちんとセットされているかチェック → !isset($_FILES['image']) if (!isset($_FILES['image']) || !isset($_FILES['image']['error'])) { // セットされていなかった場合、例外を投げる throw new \Exception('画像のアップロードに失敗しました'); } // $_FILES['image']['error'] の種類によって、例外の種類を変える switch ($_FILES['image']['error']) { // UPLOAD_ERR_OK という定数が返ってきた場合は処理を終了 case UPLOAD_ERR_OK: return true; // PHPの設定ファイルで設定されたサイズを超えている、もしくはフォームで指定されたサイズを超えている場合 case UPLOAD_ERR_INI_SIZE: case UPLOAD_ERR_FORM_SIZE: throw new \Exception('ファイルサイズが大きすぎます'); // それ以外の何らかのエラーがあった場合 default: throw new \Exception('何らかのエラー: ' . $_FILES['image']['error']); } } } ```
回答: 自己解決しました。csvに書き込みできなかったのは、`$post_data = [$_POST['comment']];`でコメントを取得して`fputcsv`で書き込もうとしたところ、`fclose($fp)`で閉じる前に、upload 関数の中でリダイレクトしてしまうので、コメントがきちんと取得できていなかったのが原因でした。 なので、upload 関数の中でリダイレクトする前に`fputcsv`を行うようにしまして、画像表示も`getImages`で行うのではなく、csvから流し込むような形で表示させるとうまくいきました。大変お騒がせしました。