質問: ['red', $e->getMessage()]; } ?> ファイルアップロード 投稿フォーム 名前: " /> コメント: ファイルを選択 メッセージ =h($msg[1])?> ```
回答: それぞれを別のものとして考えるから混乱しているのでしょうかね。 * 動画もしくは画像を投稿する(これはアップロードされたファイルの本来の名前の拡張子で判断しているようですが) * コメントを投稿する これらは一回の投稿で同時に起きることもあれば、片方しか起きないこともある、のですよね。 ですから ``` function 投稿処理 { if (ファイルがアップロードされている) { if (ファイルは動画である) { 動画投稿処理 } else if (ファイルは画像である) { 画像投稿処理 } } if (コメントが書かれている) { コメント投稿処理 } } ``` という風に、それぞれを個別に(一つの「投稿を処理する」メソッドの中で)処理すればいいのです。 補足:動画のアップロードだと、アップロード時のファイルサイズ制限に引っかかる可能性があります。PHP のマニュアルを確認の上、適切な上限値を設定しておきましょう。