アプリ版:「スタンプのみでお礼する」機能のリリースについて

画像ファイルに拡張子が「jpg」のファイルを指定するとエラーになります。
正常に登録できるようにするにはどこを修正すればいいですか?
アップロードできる「商品画像」のファイル形式は「JPEG」、「PNG」のみ可能とします。
(大文字小文字両方)
「JPEG」、「PNG」以外はエラーメッセージを表示して、商品を追加できないようにします。


//アップロードできる「商品画像」のファイル形式は「JPEG」、「PNG」のみ可能とする。
(大文字小文字両方)
//「JPEG」、「PNG」以外はエラーメッセージを表示して、商品を追加できない。

if (count($err_msg) === 0) {
//画像関連の処理部分
//is_uploaded_file関数は、指定したファイルがアップロードされたファイルかどうかを確認する
if (is_uploaded_file($_FILES['new_img']['tmp_name']) === TRUE) {
//tmp_nameを指定することで一時的なファイルの名前が取得できる
// 画像の拡張子を取得する
$extension = pathinfo($_FILES['new_img']['name'], PATHINFO_EXTENSION);
// 指定の拡張子であるかどうかチェック
if ($extension === 'png' || $extension === 'jpeg') {
// 保存する新しいファイル名の生成(ユニークな値を設定する)
$new_img_filename = sha1(uniqid(mt_rand(), true)). '.' . $extension;
// 同名ファイルが存在するかどうかチェック
if (is_file($img_dir . $new_img_filename) !== TRUE) {
// アップロードされたファイルを指定ディレクトリに移動して保存
if (move_uploaded_file($_FILES['new_img']['tmp_name'], $img_dir . $new_img_filename) !== TRUE) {
$err_msg[] = 'ファイルアップロードに失敗しました。';
}
} else {
$err_msg[] = 'ファイルアップロードに失敗しました。再度お試しください。';
}
} else {
$err_msg[] = 'ファイル形式が異なります。画像ファイルはJPEG又はPNGのみ利用可能です。';
}
} else {
$err_msg[] = 'ファイルを選択してください。';
}
}

A 回答 (2件)

こんにちは



>アップロードできる「商品画像」のファイル形式は「JPEG」、
>「PNG」のみ可能とします。
というつもりで作成されているのなら、
>画像ファイルに拡張子が「jpg」のファイルを指定すると
>エラーになります
というのは、正しく処理された結果と思われます。
    • good
    • 0

if ($extension === 'png' || $extension === 'jpeg' || $extension === 'jpg') {


とでもしてみては。
明らかに拡張子jpgは現時点のコードでは弾かれていますよね。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!