🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

1回答

1652閲覧

画像ファイルに拡張子がjpgのファイルを指定するとエラーになります。

turtle410

総合スコア13

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2021/02/15 03:07

前提・実現したいこと

画像ファイルに拡張子が「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/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2021/02/15 03:47

$extensionの内容を確認すれば明白では?
guest

回答1

0

ソースに

PHP

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

と書いていますので、

PHP

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

にしましょう。

投稿2021/02/15 03:22

showkit

総合スコア1638

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問