• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:javascriptで .jpg , .jpeg , .pdfファイルであることを判定)

JavaScriptで.jpg, .jpeg, .pdfファイルの判定をする方法

このQ&Aのポイント
  • JavaScriptを使用して、HTMLのフォームでファイルをアップロードし、そのファイルが.jpg、.jpeg、.pdfフォーマットであるかどうかを判定する方法を紹介します。
  • アップロードされたファイルが指定のフォーマットでない場合には、アラートメッセージを表示し、アップロードを制限します。
  • 大文字と小文字は区別しない判定を行い、拡張子が.jpg、.jpeg、.pdfであるかどうかを確認します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

おはようございます。 > /[jpg]$/i [jpg]は文字クラスになるので、括弧内の文字の集合、すなわちjかpかgが最後についているか、という事になってしまいます。ですから、 /(jpe*g|pdf)$/i というような方法である程度チェック可能かと思います。 当然、拡張子を偽装したファイルのアップロードも可能としてしまいますので、出来ればPHP側でファイルタイプ(MIME)のチェックもした方が良いかと思います。ファイルタイプは $_FILES['upfile']['type'] で取得出来ます。通常、jpegはimage/jpeg、pdfはapplication/pdf、application/x-pdfあたりですね。 JavaScriptだけの判断ではとても危険です(いくらでも偽装出来る)ので、PHP側で再チェックをする事をお進めします。 参考まで。

longstop
質問者

お礼

お返事遅れて申し訳ありません 大変わかりやすいご回答ありがとうございます さっそく試して、結果をご報告させていただきます

すると、全ての回答が全文表示されます。

その他の回答 (2)

noname#36864
noname#36864
回答No.2

/jpe*g|pdf/i これでどうでしょうか。

longstop
質問者

お礼

ご回答どうもありがとうございました。参考にさせていただきます

すると、全ての回答が全文表示されます。
noname#39970
noname#39970
回答No.1

>document.form_mail.upfile.value これが希望の値を取れてるのか確認した方が良いんじゃない? 中身が無い場合は "" (null) で良いかもしれないけど入ってる場合はobjectだったりして名前では持ってこれてないとかいうオチだったりしない?

longstop
質問者

お礼

ご回答ありがとうございます これは盲点でした、参考にさせていただきます

すると、全ての回答が全文表示されます。

関連するQ&A