前提・実現したいこと
画像ファイルに拡張子が「jpg」のファイルを指定するとエラーになります。
正常に登録できるようにするにはどこを修正すればいいですか?
アップロードできる「商品画像」のファイル形式は「JPEG」、「PNG」のみ可能とします。(大文字小文字両方)
「JPEG」、「PNG」以外はエラーメッセージを表示して、商品を追加できないようにします。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
PHP
1//アップロードできる「商品画像」のファイル形式は「JPEG」、「PNG」のみ可能とする。(大文字小文字両方) 2//「JPEG」、「PNG」以外はエラーメッセージを表示して、商品を追加できない。 3 if (count($err_msg) === 0) { 4 //画像関連の処理部分 5 //is_uploaded_file関数は、指定したファイルがアップロードされたファイルかどうかを確認する 6 if (is_uploaded_file($_FILES['new_img']['tmp_name']) === TRUE) { 7 //tmp_nameを指定することで一時的なファイルの名前が取得できる 8 // 画像の拡張子を取得する 9 $extension = pathinfo($_FILES['new_img']['name'], PATHINFO_EXTENSION); 10 // 指定の拡張子であるかどうかチェック 11 if ($extension === 'png' || $extension === 'jpeg') { 12 // 保存する新しいファイル名の生成(ユニークな値を設定する) 13 $new_img_filename = sha1(uniqid(mt_rand(), true)). '.' . $extension; 14 // 同名ファイルが存在するかどうかチェック 15 if (is_file($img_dir . $new_img_filename) !== TRUE) { 16 // アップロードされたファイルを指定ディレクトリに移動して保存 17 if (move_uploaded_file($_FILES['new_img']['tmp_name'], $img_dir . $new_img_filename) !== TRUE) { 18 $err_msg[] = 'ファイルアップロードに失敗しました。'; 19 } 20 } else { 21 $err_msg[] = 'ファイルアップロードに失敗しました。再度お試しください。'; 22 } 23 } else { 24 $err_msg[] = 'ファイル形式が異なります。画像ファイルはJPEG又はPNGのみ利用可能です。'; 25 } 26 } else { 27 $err_msg[] = 'ファイルを選択してください。'; 28 } 29 }
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
$extensionの内容を確認すれば明白では?