• ベストアンサー

ファイルアップロードのダイアログボックスで拡張子を固定するには

PHP4で画像ファイルをアップロードするスクリプトを組んでいたのですが、<input type="file">のボタンをクリックしたときに表示されるダイアログボックスにおいて、拡張子を決めておいて画像ファイルのみを選択するようにはできないんでしたっけ?? 現在は、「すべてのファイル(*.*)」がデフォルトで、 画像(*.gif;*.jpg;*.jpeg;*.png) HTML (*.htm;*.html) が選択できるようになっています。 これを、 画像(*.gif;*.jpg;*.jpeg;*.png) だけ表示させたいと考えています。 よろしくお願いします。

  • umioyo
  • お礼率78% (172/220)
  • PHP
  • 回答数1
  • ありがとう数7

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

  • ベストアンサー
  • mpx
  • ベストアンサー率71% (149/209)
回答No.1

一応 htmlの仕様上は下記のような表記で指定できるはずですが <input type="file" name="pic" accept="image/jpeg,image/png"> 実際に対応しているブラウザはほとんど無いようです。 フィルターのかかったダイアログとはなりませんが、 javascriptを使って指定の拡張子以外の送信を抑制するくらいで我慢するしかないでしょう

umioyo
質問者

お礼

ご回答ありがとうございました。 あきらめがつきました^^

関連するQ&A

  • 画像のアップロードが出来ない

    →添付可能なファイルは.gif/.jpg/.jpeg/.png サイズは100KBまで。 ファイル名に半角スペースがあるとアップロードできません。 jpeg、サイズ100KB以下の画像を選択したのですが、アップロード出来ませんでした。なぜでしょうか。

  • アップロードされてきた画像ファイル

    フォームからアップロードされてきた画像ファイルを、適当なファイル名を付けてJPGあるいはGIFの拡張子で保存し、HTMLファイルで保存した画像を一覧表示させようというCGIスクリプトを作りたいと考えています。 <FORM action="xxxx.cgi" method="post" enctype="multipart/form-data"> <INPUT type="file" name="gazo"> <INPUT type="submit"> </FORM> とこんな具合のフォームから画像ファイル(JPGやGIF)をアップロードした時、 受け手のxxxx.cgiでは、この画像ファイルのデータをどのように受けたらよいのでしょうか? cgi-lib.plを読み込んで、$in{'gazo'} というような形で画像ファイルのデータを受け取ればよいのでしょうか?

    • ベストアンサー
    • CGI
  • フォームからアップロードされた画像ファイルの処理

    フォームからアップロードされてきた画像ファイルを、適当なファイル名を付けてJPGあるいはGIFの拡張子で保存し、HTMLファイルで保存した画像を一覧表示させようというCGIスクリプトを作りたいと考えています。 質問1 <FORM action="xxxx.cgi" method="post" enctype="multipart/form-data"> <INPUT type="file" name="gazo"> <INPUT type="submit"> </FORM> とこんな具合のフォームから画像ファイル(JPGやGIF)をアップロードした時、 受け手のxxxx.cgiでは、この画像ファイルのデータをどのように受けたらよいのでしょうか? read(STDIN,$_,$ENV{'CONTENT_LENGTH'});としたり、 あるいは cgi-lib.plを読み込んで、$in{'gazo'} というような形で画像ファイルのデータを受け取ればよいのでしょうか? 質問2 画像ファイルを受け取ったとして、フォームから送られてきた画像ファイルがJPGなのかGIFなのかを判別することは可能でしょうか? 可能ならば、判別するためのスクリプトはどんなものが考えられるでしょうか? (フォームから送られてくる画像ファイルのデータの何をチェックすれば、JPGかGIFかを判別できるのでしょうか?) もしご回答頂ける方がおられればご教授ください。よろしくお願いします。 なお、「既存のスクリプトを利用しなさい」というような回答やアドバイスならば不要でございます。

    • ベストアンサー
    • Perl
  • ファイルのアップロードができません

    今日始めたばかりの初心者です。 PHPだとCGIに比べ、ファイルのアップロードとか画像の処理が簡単に行えそうなのでチャレンジしてみたのですが、いきなりつまづいてしまいました。 とりあえずファイルをアップロードしてみようと思い、下のようなサンプルをアップロードしてみたのですが、さっぱり動きません。 適当なjpgファイルをアップロードすれば、スクリプトのあるディレクトリに”aaa.jpg”という名前で保存すると思うのですが…。 最後の”var_dump($_FILES);”という命令で、アップロードされたファイルの内容を表示させてるはずなのですが、ファイル送信前も後も”array(0) {}”としか表示されません。 PHPのバージョンは4.34です。 どなたかご教授お願いします。 ************************ <form enctype="multipart/form-data" method="post"> Upload File:<input name="userfile" type="file"> <input type="submit" value="Send File"> </form> <pre> <?php if (!empty($_FILES)) { move_uploaded_file($_FILES['userfile']['tmp_name'],'aaa.jpg'); } var_dump($_FILES); ?> </pre> ************************

    • ベストアンサー
    • PHP
  • スマートフォンから画像のアップロード

    スマートフォン用サイトで画像のアップロード機能を実装しようと思っています。 PCサイト用に作成したものをそのまま流用しようと思ったのですが、 うまくいきませんでした。 対応する画像はjpg,gif,pngの三種類です。 下記がPC用のソースです。 <form action="edit_url" method="POST" enctype="multipart/form-data"> <input type="file" name="Img" size="10"> </form> フォーム受け取り先で if(is_uploaded_file($_FILES['Img']['tmp_name'])){ //jpg,gif,png以外のファイルの場合はエラー if($_FILES['Img']['type'] != "image/pjpeg" AND $_FILES['Img']['type'] != "image/jpeg" AND $_FILES['Img']['type'] != "image/png" AND $_FILES['Img']['type'] != "image/gif"){ echo "エラー"; } } とすると「エラー」が表示されます。 $_FILES['Img']['type'] の中身を見ると 「application/octet-stream」 になっていました。 試してみた端末はandroid4.0の端末で、デフォルトブラウザを使用しました。 スマートフォンから画像をアップロードするには、 どのようにしたらよいのでしょうか。

    • ベストアンサー
    • PHP
  • ファイルアップロードの受信の仕方

    最近、PHPを勉強し始めた初心者です。 よくわかるPHPの教科書(毎日コミュニケーションズ刊)の109ページに載っているファイルアップロードの仕方が上手くいきません。 本書通りプログラムしてJPEG画像をアップしているはずなのですが 「※拡張子が.gif, .jpg, .pngのいずれかのファイルをアップロードしてください」 が表示されてしまいます。 XAMPP 1.7.3を使用しています。特に設定を変更したところはありません。 sample23.phpと同じフォルダ内にuser_imgフォルダも作りました。 何がいけないのでしょうか? ●sample23_input.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio … <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <title>ファイルアップロードを受信する</title> </head> <body> <form action="sample23.php" method="post" enctype="multipart/ form-data"> <dl> <dt>写真</dt> <dd> <input name="my_img" type="file" id="my_img" size="50" /></dd> </dl> <input type="submit" value="送信する" /> </form> </body> </html> ●sample23.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio … <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <title>ファイルアップロードを受信する</title> </head> <body> <?php $file = $_FILES['my_img']; print('ファイル名(name): ' . $file['name'] . '<br />'); print('ファイルタイプ(type): ' . $file['type'] . '<br />'); print('アップロードしたファイル(tmp_name): ' . $file['tmp_name'] . '<br />'); print('エラー内容(error): ' . $file['error'] . '<br />'); print('サイズ(size): ' . $file['size'] . '<br />'); // ファイルアップロードの処理をする $ext = substr($file['name'], -3); if ($ext == 'gif' || $ext == 'jpg' || $ext == 'png') { $filePath = './user_img/' . $file['name']; move_uploaded_file($file['tmp_name'], $filePath); print('<img src="' . $filePath . '" />'); } else { print('※拡張子が.gif, .jpg, .pngのいずれかのファイルをアップロードしてください'); } ?> </body> </html> 一時ファイルが保存される場所を検索すると C:\xampp\tmp と表示されます。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • ファイルのアップロード

    FMVCE227EDのパソコンですが   GIF JPG PNG形式のファイルがアップロードできません。どうしたらよいですか?                                     

  • ファイル選択と同時にアップロード HTML+JS

    HTMLとJava Scriptのことを質問させてください <form>タグからファイルを選択すると同時をアップロードしたいと思っています。 複数の「ファイルを選択ボタン」を設置し、それぞれ"001.jpg"、"002.jpg"など指定の名前でアップロードしたいです。 下記のようにいくつかの<form>タグを設置し、javascriptでコントロールできるかと思いケース1のように書いた場合はうまくいったのですが、ケース2のように複数並べて記述した場合、動かなくなり困っております。 どなたか教えていただけないでしょうか? よろしくお願いいたします ケース1) <form id="upload_file1" action="file_upload.php" method="post" enctype="multipart/form-data" target="upload_frame">    <input type="hidden" name="picture_id" value="001.jpg" />    <input type="file" id="file_id_1" name="file_name" accept="image/jpeg"> </form> <form id="upload_file2" action="file_upload.php" method="post" enctype="multipart/form-data" target="upload_frame">    <input type="hidden" name="picture_id" value="002.jpg" />    <input type="file" id="file_id_2" name="file_name" accept="image/jpeg"> </form> <script> var form = document.getElementById("upload_file1"); var input = form.file_name; input.onchange = function (){ if(this.value){ form.submit(); } }; </script> ケース2) <form id="upload_file1" action="file_upload.php" method="post" enctype="multipart/form-data" target="upload_frame">    <input type="hidden" name="picture_id" value="001.jpg" />    <input type="file" id="file_id_1" name="file_name" accept="image/jpeg"> </form> <form id="upload_file2" action="file_upload.php" method="post" enctype="multipart/form-data" target="upload_frame">    <input type="hidden" name="picture_id" value="002.jpg" />    <input type="file" id="file_id_2" name="file_name" accept="image/jpeg"> </form> <script> var form = document.getElementById("upload_file1"); var input = form.file_name; input.onchange = function (){ if(this.value){ form.submit(); } }; var form = document.getElementById("upload_file2"); var input = form.file_name; input.onchange = function (){ if(this.value){ form.submit(); } }; </script>

  • CGIで画像ファイルのアップロード

    CGIで画像をアップロードできる掲示板をつくっているのですが、 gif、png、bmp、jpgなどの画像ファイルの縦横のサイズを取得する方法がわかりません。 縦横の比率を変えないでサムネイル表示させたいと思っているのですが、どうしたらよいでしょうか??

    • ベストアンサー
    • Perl
  • ファイル形式変更について・・・

    私はパソコン初心者でくだらない質問なのかもしれませんが、自分で試してもわからず皆様に助言、回答願いたいです!! 最近はじめました、ブロブで画像をアップロードしたいと思っています。 そこでまず、画像ファイル入力画面で参考ボタンを押し、画像を選択しました。 すると≪.jpg、.png、.gif以外の拡張子の画像はアップロードできません ≫ と出てくるのです。 どの画像で試したても同じ表示が現れます。 ※ ファイル形式は .GIF .JPG .PNG でお願いします。 と書かれていることから、ファイル形式を変えなければならないと思うのですが、 全然見当がつきません。。。 どなたか、ご助言願います!!

専門家に質問してみよう