HTMLのフォーム文で、ファイルをアップロードしてもらい、それが.jpg, .jpeg , .pdf ファイルであった場合のみ、アップロードできるような仕組みをJavascriptを利用して作成中ですが、うまく行きません
(ソース: test.php)
--ここから--
<html></body>
<SCRIPT language="JavaScript">
function mailSubmit(){
if (document.form_mail.upfile.value == "" ) {
alert (" ファイルを選択してください。");
flag = 1;
return;
} else {
if (document.form_mail.upfile.value.match(/[jpg]$/i)||(/[pdf]$/i)){
alert ("添付ファイルはJPEG,PDFに限ります");
flag = 1;
// return;
}
}
if(flag){
return false;
} else {
document.form_mail.submit();
return true;
}
}
</script>
<table>
<!-- === FORMここから === -->
<!-- <FORM METHOD="post" action="<?php print $_SERVER['PHP_SELF']; ?>" NAME="form_mail" ENCTYPE=multipart/form-data> -->
<FORM METHOD="post" action="<?php print $_SERVER['PHP_SELF']; ?>" NAME="form_mail" ENCTYPE=multipart/form-data onSubmit="return mailSubmit()">
ファイル選択<INPUT TYPE=file NAME="upfile" SIZE=50 VALUE=\"$upfile\">
<br>
<INPUT TYPE="button" VALUE=" 送信 " onClick=" javascript:mailSubmit() ">
<INPUT TYPE="button" VALUE=" キャンセル " onClick="javascript:history.back()">
</FORM></body>
</html>
--ここまで--
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側で再チェックをする事をお進めします。
参考まで。
No.2
- 回答日時:
/jpe*g|pdf/i
これでどうでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
iframe内のformをサブミットす...
-
perl で任意のフレーム内にペー...
-
Chromeの document.getElementB...
-
foreachの中で、リンクをPOST送...
-
検索フォームから、同時に複数...
-
submit関数の使い方
-
Cookieに保存されない
-
【UWSC】HTML内のある部分を抽...
-
3つのselectでURLパラメータを...
-
ボタン無しでフォーム内容送信
-
return trueとreturn falseの用...
-
正規表現で複数マッチ条件で悩...
-
クリックされた罫表セルの行番...
-
テキストエリアの行頭行末に指...
-
jQueryで特定のチェックボック...
-
onchangeイベントを強制的に発...
-
引数に数値、文字列の混在
-
jQueryで設定したイベントハン...
-
複数のプルダウンを1つにまとめ...
-
一つのチェックボックスのON/OF...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
1つのページにformを2つ設置。2...
-
複数のフォームを一括で自動送...
-
Cookieに保存されない
-
別ウィンドウへのsubmitの挙動...
-
submitした値を返したい
-
formのsubmitイベントの発生に...
-
javascriptでASPにデータを渡す
-
フォームが空欄の時にフォーム...
-
focus()が上手くいかない
-
iframe内のformをサブミットす...
-
POST時に要素を削除してからPOST
-
FormのonsubmitでJavaスクリプ...
-
1つのform内に2つのsubmitボタ...
-
JavascriptからSubmitして画面...
-
submitボタン押下後、disabled...
-
添付ファイルの未選択チェック方法
-
enterキーでのtab移動
-
ファイル選択と同時にアップロ...
-
別窓ウィンドウから親ウィンド...
-
Javascript IEで「識別子があり...
おすすめ情報