ベストアンサー ※ ChatGPTを利用し、要約された質問です(原文:候補画像から選択して画像をアップロード) 画像の候補から選択してアップロードする方法 2014/06/29 08:56 このQ&Aのポイント 画像の候補から選ぶためには、候補画像が格納されているフォルダにアクセスして選択する必要があります。参照ボタンを押すと、imgフォルダにアクセスすることができます。また、ラジオボタンやセレクトボタンを使って候補画像を選択する方法もあります。 候補画像から選択して画像をアップロード 通常、画像のアップロードは <form action="upload.php" method="post" enctype="multipart/form-data"> <p> 画像をアップロードする<br> <input type="file" name="pic"> </p> <p> <input type="hidden" name="code" value="<?php echo $code ?>"> <input type="submit" name="submit" value="アップロード"> </p> </form> というフォームを使っています。 ↓ ★画像アップロードフォーム http://pips.chu.jp/0/up/upload.php これで、「参照」を押すと、ローカルのフォルダから画像を選べますが、 あらかじめ作成した画像の候補の中から1つ選んでアップロードするにはどうすればよいでしょうか。 画像の候補は、「img」というフォルダを作り、その中に格納しています。 ↓ ★候補画像 http://pips.chu.jp/0/up/img/sample1.jpg http://pips.chu.jp/0/up/img/sample2.jpg http://pips.chu.jp/0/up/img/sample3.jpg 「参照」のボタンを押すと、「img」フォルダに行く方法が知りたいです。 また、ラジオボタンやセレクトボタンを使った方法があれば教えて頂けないでしょうか。 何卒よろしくお願いします。 質問の原文を閉じる 質問の原文を表示する みんなの回答 (1) 専門家の回答 質問者が選んだベストアンサー ベストアンサー agunuz ベストアンサー率65% (288/438) 2014/06/30 03:30 回答No.1 >「参照」のボタンを押すと、「img」フォルダに行く方法が知りたいです。 ありません。参照はあくまでもローカルPCだけです。サーバ側のファイル(しかもhttpでしかアクセスできない)を参照する方法はありません。 >また、ラジオボタンやセレクトボタンを使った方法があれば教えて頂けないでしょうか。 imgディレクトリのファイル一覧をglobなどで取得して、それを元にラジオボタンでもセレクトボックスでも生成すればいいと思います(「glob ファイル一覧」で検索すればglobの使い方は出てきます)。 質問者 お礼 2014/06/30 06:59 ご回答ありがとうございました。 globという関数があることを知りませんでした。 検索すると、使い方が詳しく掲載されたサイトが沢山あるので、何とかできそうです。 ありがとうございました! 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピュータープログラミング・開発PHP 関連するQ&A ファイル選択と同時にアップロード 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> ファイルアップロードについて ファイルアップロードについて質問させて下さい。 ID、ファイルアップロードの機能の2つがあります。 ファイルを指定し、submitボタンを押下すると「b.php」に遷移します。 ファイルをアップロードした場合には遷移をせず ID、画像パスが入力されている場合のみ「b.php」に遷移したいのです。 入力チェックはjavascriptで行っていますが、その場合には「action=""」として javascript側で遷移するしか方法は無いのでしょうか? ---a.php---- <form enctype="multipart/form-data" action="b.php" method="post" name="a"> <input type="hidden" name="MAX_FILE_SIZE" value="50000000" /> <table> <tr> <th>ID</th> <td><input type="text" name="ID" value=""></td> </tr> <tr> <th>画像</th> <td><input type="file" name="img" value=""> <input type="submit" name="upload" value="upload"> </td> </tr> </table> <a href="#" onClick="javascript:check('a');"><img src="button.jpg"></a> </form> お手数ですが、ご教授よろしくお願い致します。 ファイルのアップロードができません 今日始めたばかりの初心者です。 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> ************************ ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム phpでのファイルアップロード ファイルのアップロードについてご質問があります。 宜しくお願いします。 基礎phpという本でファイルをアップロードするサンプルがあり、このスクリプトでアップロードされたファイルを格納する『upload』というディレクトリをサーバに作成し、スクリプトを実行して、実際にファイルがアップロードできているかffftpにて『upload』ディレクトリの中を見てみると、なにも表示されませんでした。しかしブラウザから http://myドメイン/upload/ファイル名 にアクセスすると表示されます。 ですのでアップロードはできているがファイルが見えないという状態になっております。また『upload』ディレクトリの削除などもできなくなってしまいます。 サーバの設定が関係しているのかとも思ったのですが、サーバの設定を変更することはできないので、プログラムがわで何とかできないでしょうか? 大変申し訳ありませんが宜しくお願いいたします。 以下がそのコードです。 【up.html】 <html> <head><title>File Uploader</title></head> <body> <form method="post" enctype="multipart/form-data" action="up.php"> <input type="file" name="upfile"> <input type="submit" value="upload"> </form> </body> </html> 【up.php】 <html> <head><title>File Uploader</title></head> <body> <p> file uploader </p> <?php $updir = "./upload/"; $filename = $_FILES['upfile']['name']; if (move_uploaded_file($_FILES['upfile']['tmp_name'], $updir.$filename) == FALSE){ print("Upload failed..."); print($_FILES['upfile']['error']); }else { print("<b>" . $filename . "</b> uploaded!"); } ?> </body> </html> WEBサイトからファイルマネージャへ直接画像をアップロードするには はじめまして。 自分のサイトのページからファイル参照をし、 [<FORM method="POST" enctype="multipart/form-data" action="img_upload.php"> <INPUT type="hidden" name="MAX_FILE_SIZE" value="65536"> 画像のファイル名を入力してください(最大64KByte) <INPUT size="30" type="file" name="upfile"><BR> <BR> <INPUT type="submit" name="submit" value="送信"> <INPUT type="reset" name="reset" value="リセット"> </FORM>] 自分の借りているレンタルサーバにあるファイルマネージャへ直接画像をアップし、 違うページで表示させたいのですが可能でしょうか。 サンプルソースや参考になるサイトを教えていただけるとありがたいです。 どうかよろしくお願いいたします。 ファイルのアップロードが、どうしても どうしても 出来ません・・ ■アップロードフォーム用のHTMLファイルです↓ ファイル名=gazou_upload.html <html> <head> <title>ファイルのアップロード</title> </head> <body> <form method="POST" action="gazou_upload.php" enctype="multipart/form-data"> <input type="hidden" name="max_file_size" value="1000000" > <input type="file" name="userfile"><br><br> <input type="submit" value="アップロード"> </body> </html> ■受け取ったファイルをサーバ上のディレクトリに移動するPHPファイルです↓ ファイル名=gazou_upload.php <?php // アップロード先ディレクトリ+ファイル名の指定 $uploaddir = '/image/'; $uploadfile = $uploaddir. $_FILES['userfile']['name']; if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { print "ファイルアップロード成功"; print_r($_FILES); } else { print "ファイルアップロード失敗"."<br>"; print_r($_FILES); } ?> ■結果 Warning: move_uploaded_file(/image/P1010851.jpg): failed to open stream: No such file or directory in /home/sites/lolipop.jp/users/**********/web/gazou_upload.php on line 8 Warning: move_uploaded_file(): Unable to move '/tmp/phpuqa8g2' to '/image/P1010851.jpg' in /home/sites/lolipop.jp/users/***********/web/gazou_upload.php on line 8 ファイルアップロード失敗 Array ( [userfile] => Array ( [name] => P1010851.jpg [type] => image/pjpeg [tmp_name] => /tmp/phpuqa8g2 [error] => 0 [size] => 84509 ) ) 簡単なプログラムなのにちゃんと動作してくれません。色々試行錯誤試したりしているのですが・・初心者で本当に困ってます。どなたかアドバイスよろしくお願いします。 アップロードができるようにしたいのですが・・。 こんにちは。お世話様になります。 ホームページで画像などがアップできて、表示ができるようにアップロードボタンを作りたいと思っています。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <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="http://●●●/upload.php" method="post" enctype="multipart/form-data" target="upload_frame"> <input type="hidden" name="max_file_size" value="1000000" /> <input type="file" name="upload_image" /> <input type="submit" value="画像アップロード" /> </form> <div id="container"></div> <iframe name="upload_frame" style="display:none;"></iframe> </body> </html> ---phpファイル---- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>画像アップロード(iframe内)</title> </head> <body> <?php $upload_dir = './'; $filename = $_FILES['upload_image']['name']; move_uploaded_file($_FILES['upload_image']['tmp_name'], $upload_dir.$filename); ?> <script type="text/javascript"><!-- var container = parent.document.getElementById('container'); image = parent.document.createElement('img'); image.src = './<?php print($filename);?>'; container.appendChild(image); //--></script> </body> </html> ネットで調べて、このようにしたのですが、画像をアップしようとしても表示されません。 何がいけないのでしょうか・・・。 大変恐れ入りますが、詳しい方はご教示くださいませ。 宜しくお願い致します。 phpにてファイルをアップロード2 先日質問させていただいたものなんですが、本やサイトを参考にして、以前とは違ったphpを使用してファイルをアップロードしようと考えています。 <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=Shift_JIS"> <title><?php echo basename($PHP_SELF);?></title> </head> <body> <p>ファイルアップロード</p> <form method="POST" action="gazou_upload.php" enctype="multipart/form-data"> <input type="file" name="uploadfile"> <input type="submit" value="送信"> </form> <?php if(isset($uploadfile)) { // アップロードされたファイルのサイズを確認 if($uploadfile_size <= 2097152) { // 移動 $moveto = "/public_html/img" . basename($uploadfile_name); move_uploaded_file($uploadfile, $moveto) or die("アップロード失敗\n"); print "<p>ファイルをアップロードしました。 - $moveto</p>"; } } ?> </body> </html> 上記を使おうと思っているのですが、これを使用した場合、 (1)上記をhtmlとしておくだけで、ファイルのアップが可能になるのか?phpも必要ですよね? (2)この場合アップされたファイルはドコに保存されるのか?…僕はpublic_htmlの中のimgというフォルダに移動して欲しいのですが。 皆様お手数ですが、教えていただけないでしょうか? よろしくお願いします。 ファイルのアップロードについて phpのmove_uploaded_fileを使用してアップロードをしようと思うのですがアップロードが出来ません。 状況は ローカル環境のwindowsでのアップロードは行えるがlinuxでは失敗してしまいます。 move_uploaded_fileからはエラーは出力されていません そもそもmove_uploaded_fileが成功しているのになんでアップロードされていないのか分かりません。 //■HTML <form name="form1" method="post" action="upload.php" ENCTYPE="multipart/form-data"> <input type="hidden" name="MAX_FILE_SIZE" value="10485760" /> <table class="frm" id="tbl"> <tr><th>ファイル1<div id="image"></div></th> <td> 画像<input id="img_1" type="file" name="image[]" class="fname" onChange=imageChange(this); /><br /> </td></tr> <tr> <th>ファイル2<div id="image"></div></th> <td> 画像<input id="img_2" type="file" name="image[]" class="fname" onChange=imageChange(this); /><br /> </td> </tr> </table> </form> //■phpで以下のコードを実行すると oreach ($_FILES["image"]["error"] as $key => $error) { //複数のファイルをアプロード if ($error == UPLOAD_ERR_OK) { $tmp_name = $_FILES["image"]["tmp_name"][$key]; //テンポラリファイルパス $name = $_FILES["image"]["name"][$key]; //アップロードファイル名 $size = $_FILES["image"]["size"][$key]; //アップロードファイルサイズ $ermsg = $_FILES['image']['error'][$key]; //エラーメッセージ echo "アップロードファイル名".$name."\n" ; echo "アップロードファイルsize" .$size ."\n" ; echo "errmsg= .$ermsg."\n" ; // ファイルアップロード $cnt++; if ( move_uploaded_file($tmp_name, "../1/33/.$cnt."2upload.jpg ")){ //ファイルアップロード echo "アップロード成功 .$ermsg."\n" ; echo " テンポラリファイル="$tmp_name."\n"; echo " アップロードファイル="$dir_img."/".$cnt.UPLOAD_FILE_NAME."\n"; } else { echo 1; error_log("upload error! \n", 3, MATCHING_ERROR_LOG); exit; } } } exit; ■結果 アップロードファイル名thum6.jpg アップロードファイルsize=10104 errmsg= 0 アップロード成功 テンポラリファイル=/tmp/phpMvCzgo アップロードファイル=../1/33/1upload.jpg アップロードファイル名 thum3.jpg アップロードファイルsize=11528 errmsg= 0 アップロード成功 テンポラリファイル=/tmp/php5Q4kIL アップロードファイル=../1/33/2upload.jpg テンポラリの/tmpは777のため権限に問題ないです php.iniの設定 upload_max_filesize=2m post_max_size=8m memory_limit=128m 今回のアップロードファイルのサイズから問題なし file_uploads=onなので問題ありませんでした これでなにかわかる方いらっしゃいましたら教えてください。 PHPで画像データーのアップロードを行っています。 PHPで画像データーのアップロードを行っています。 一つの画像を imagesファイルにアップロードするまでは出来たのですが一度に複数の画像をアップロードする方法が分りません。 本で読んだところ、fileを配列にすれば良いと書いてあったのですが単純にフォームを配列にしてもやはり一つの画像しかアップ出来ませんでした。 -- form.html -- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Insert title here</title> </head> <body> <form enctype="multipart/form-data" action='upload.php' method='post'> <input type="hidden" name="MAX_FILE_SIZE" value="102400" /> <input type="file" width=40 name="sendfile" /> <input type="submit" value="送信" /> </form> </body> </html> -- upload.php -- <?php if (!isset($_FILES['sendfile']['name'])){ echo 'ファイルが見つかりません。'; exit; } $fname = $_FILES['sendfile']['name']; $temp = $_FILES['sendfile']['tmp_name']; $target = './images/' . $fname; if (move_uploaded_file($temp,$target)){ echo $fname . "をアップロードしました。"; } else { echo "アップロードに失敗しました。"; } ?> 勉強中の私に分り易く教えていただける方、よろしくお願いいたします。 また、PHPでのメール自動送信は出来たのですが自動受信が分りません。 (お問い合わせメールの様な) これはかなり難しいのでしょうか? フォームからウィンドウズメール、アウトルック等で受信できるようにしたいのですが? PHP3.5+XAMPPでエクリプスを使い勉強しています。 jqueryで、後から追加した画像もドラッグ&ドロップできるようにした jqueryで、後から追加した画像もドラッグ&ドロップできるようにしたい 以下のようにして、画像をドラッグ&ドロップできるようにしています そこに、新たに画像をアップロードして、その画像もドラッグできるようにするところで詰まってしまいました アップロードする時に画面遷移を起こしたくなかったので、インラインフレームを使っています upload.phpでアップロードされた画像を取得して、divタグのクラス名を指定したりしてappendChildで親フレームに挿入 しかし、画像が表示されはするのですがドラッグしようとしても何も起こらない状態です Firebugでも見てみると、元の画像は <div class="dragArea ui-draggable"><img src="./img0.jpg" width="100" height="100"></div> となっていますが、アップロードした画像(新規追加した要素)は、 <div id="adddragfile"><div class="dragArea"><img src="././tmp/newimg.jpg" width="100" height="100"></div></div> となっていて、ドラッグ属性が付いていないように思えます よろしくお願いします /* include.php */ //ドラッグ可能な画像 <div class='dragArea'><img src='./img0.jpg' width='100' height='100'></div> //ここにタグを追加していく <div id='adddragfile'></div> //ドロップ先となる画像 <div class='dropArea'><img src='./img1.jpg' width='300' height='300'></div> <div class='dropArea'><img src='./img2.jpg' width='300' height='300'></div> //ファイルのアップロード <iframe title='upload_frame' name="upload_frame" style="display:none"></iframe> <form action="./upload.php" method="post" enctype="multipart/form-data" target="upload_frame"> <input type="hidden" name="max_file_size" value="1000000"> <input type="file" name="upload_image"> <input type="submit" value="画像アップロード"> </form> /* jqueryファイル */ $(function(){ $(".dragArea").draggable({ cursor:'move', helper:'clone' }); $(".dropArea").droppable({ drop:function(e,ui){ alert("ドロップされました"); } }); }); /* upload.php */ <?php $upload_dir = './tmp/'; $filename = $_FILES['upload_image']['name']; move_uploaded_file($_FILES['upload_image']['tmp_name'], $upload_dir.$filename); ?> <script type="text/javasscript"> //親フレームのオブジェクトを取得 var container = parent.document.getElementById('adddragfile'); //要素を作成していく div = parent.document.createElement('div'); div.className = "dragArea"; image = parent.document.createElement('img'); image.src = './<?php print($upload_dir.$filename);?>'; image.width = "100"; image.height = "100"; container.appendChild(div); div.appendChild(image); </script> docomoでの画像アップロードについてです。 docomoでの画像アップロードについてです。 PCと同じ、fileタグを使用し、携帯で画像をアップロードしたいのですが、 画像アップロードできる画像と出来ない画像があります。 (絵文字画像ならできるが、写メデータだとできない) アップロード出来ない場合、$_FILES及び$_POSTのデータが渡りません。 因みに同じHTML及びPHPのソースでsoftbankだと出来ました。 容量の問題かと思い、 ini_set("upload_max_filesize","2M"); ini_set("post_max_size","3M"); ini_set('max_input_time',"600"); ini_set('max_execution_time',"600"); なども設定しましたが、変わらないです。 どなたかヒントでも頂ければと思います。 宜しくお願いします。 因みにHTMLのソースは下記です。 <form action="スクリプトURL" method="POST" enctype="multipart/form-data"> <input name="MAX_FILE_SIZE" type="hidden" value="1000000"> <input type="FILE" name="photo"> <INPUT type="submit" name="conf" value="アップロード"> </form> AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム アップロードした画像を表示するには アップロードした画像を表示したいと考えてます。アップロードは非同期 なので、アップロードを実行するchild.phpで画像表示の処理もして、アッ プロードの命令を出すparent.phpに画像の表示を行います。 ---- child.php(一部) ---- move_uploaded_file($_FILES["upload_file"]["tmp_name"], $image_name); echo '<img src="' . $image_name . '" width="100" height="100">'; これで成功します。ただ画像を常に同じ場所に表示したくechoの部分を以下 のように書き換えると失敗します。 echo '<script>'; echo 'document.getElementById("pict").src="' . $image_name . '.jpg";'; echo '</script>'; ---- parent.php(一部) ---- <img src="" id="pict"> クロームのDevToolsで調べるとElementsでは以下のようにsrcに何もなく失敗してます。 <img src id="pict"> ところがSourcesでは「Cannot set property 'src' of null」とエラーが出ているのに 以下のようにsrcには画像名は入ってます。 <script>document.getElementById("pict").src="./image1/bfbiD.jpg";</script> なお同名の画像はきちんとアップロードしてます。対策があれば教えてもら えないでしょうか。 画像アップ php初心者です 簡単な画像アップロードを付けたいと思っています それでアップだけはなんとかできたのですが、もう少し機能を付けたいです 付けたい機能は 1.拡張子を調べて限定したい。gif、jpg、pngの三つを許可したい 2.画像の横と縦の幅が指定した幅より大きければ、指定した幅まで縦横比維持で縮小 100*100 3.もう一つのディレクトリに、小さいサムネイルを作りたい。大きさは32*32です 4.拡張子はそのままにして画像の名前をリネームしたいです よろしくお願いします(_ _ <?php $img_name = $_FILES["upfile"]["name"]; $img_size = $_FILES["upfile"]["size"]; $img_type = $_FILES["upfile"]["type"]; if($_REQUEST["up"] != ""){ if($img_tmp != "" and $img_size <= 50000){ $img_message = "名前は: $img_name <br>サイズは: $img_size <br>MIMEタイプは: $img_type"; if (is_uploaded_file($_FILES["upfile"]["tmp_name"])) { if (move_uploaded_file($_FILES["upfile"]["tmp_name"], "files/" . $_FILES["upfile"]["name"])) { chmod("files/" . $_FILES["upfile"]["name"], 0604); print $_FILES["upfile"]["name"] . "をアップロードしました。"; } else { print "ファイルをアップロードできません。"; } } else { print "ファイルが選択されていません。"; } }else{ $size_error = "サイズが大きすぎます"; } } ?> <html> <head> <title>画像アップロード</title> </head> <body> <form name="form" action="" method="POST" ENCTYPE="MULTIPART/FORM-DATA"> <input name="upfile" type="file" size="40"> <input name="up" type="submit" value="アップロード"><hr> </form> <?php print($size_error); ?><?php print($img_message); ?> </body> </html> PHPを使って、1ページ内で新規レコードと画像アップロードしたいのですが・・・ PHP4、MySQL4初心者です。 今回、会員名簿のDBをつくり、PHPを使って、管理者が新規会員(レコード)を登録できるようにプログラミングしています。 フィールドは、「ID」「名前」「住所」「コメント」等の数字や文字データばかりでしたが、今回会員の写真(jpg)データも新規会員登録画面で一緒に登録できるようにして欲しいと要望があり、色々調べておりますが四苦八苦しております・・・ 基本的な構造としましては・・・ HTMLファイルにformタグを使って、入力してもらったデータをpostで飛ばして、別ファイル(php)でsql文を書いて、insertしている形です。 その際に一緒に画像も、sbumitする際に所定のフォルダにアップロードして、そのファイル名をimg_id.jpg みたいな形で接頭語とidをくっつけて、作成して、その画像ファイル名をさらに、DBのフィールド”img_name”に登録したいのです。 画像はBLOBでDBにアップではなく、あくまでFTPで後で入って処理しやすいように、public以下のフォルダ内に特定のフォルダを作成してそこにアップしたいと思います。 1ページ以内で処理するということで、かなり困っていますが、いい方法はないでしょうか・・・? みなさん! どうかお知恵をお貸しくださいませ!! ちなみに現在できている登録のコードはこちらです。 -------------(HTML)------------------------------------- <html> <body> <h2>新規会員登録</h2> <form action="insert.php" method="post"> ■会員名 :<input type="text" name="input_name" /><br> ■住 所 :<input type="text" name="input_addr" /><br> ■コメント:<input type="text" name="input_comm" /><br> <input type="submit" value="-- 登録する --" /> </form> </body> </html> -------------(HTML)------------------------------------- -------------(PHP:insert.php)-------------------------- <? $db = mysql_connect("localhost","ユーザー名","パスワード"); mysql_select_db("データベース名"); $query = "set NAMES euc"; $result = mysql_query($query); // ここで、HTMLフォームの中のinputタグに対応したデータを取得 $name= $_POST["input_name"]; $addr= $_POST["input_addr"]; $comm= $_POST["input_comm"]; $query = "insert into テーブル名(name,addr,comm) values ('$name','$addr','$comm')"; $result = mysql_query($query); mysql_close($db); ?> <html> </head> <body> <h2>新規会員登録</h2> <p>データ登録完了</p> </body> </html> -------------(PHP)-------------------------------------- phpで画像をアップロードするときは formの中に ”enctype=\"multipart/form-data”を入れたり、 ”move_uploaded_file”を使ったりと、断片的には知識はありますが、 体系的に理解できません・・・ どなたか、アドバイス頂けましたら幸いです。 あるいは、解説してあるサイトや、フリーのサンプルスクリプト等教えて頂けましたら助かります・・! どうぞ、どうぞよろしくお願い致します!! ファイルのアップロードの方法をお教えください 初心者で困っております。何卒よろしくお願いいたします。 次のHTMLで画像をアップし、受け側のPHPで保存しようとしていますが、どうしてもエラーになってしまいます。 何もわかりませんもので、解決の方法を教えていただければ幸いです。 ファイルの送り側のHTMLファイル <html> <form action="upload_save_test1.php" method="POST" enctype="multipart/form-data"> <input type="file" name="uploadfile" size="60"> <input type="submit" name ="reg" value="登録"> </form> </html> 受け側のupload_save_test1.php <?php if(!move_uploaded_file($uploadfile,"tem.jpg")){ print "保存に失敗しました"; } ?> 何か根本的な問題なのでしょうか? PHP 画像アップロード 重複防止 画像、ファイルをアップロードできるフォームを作成しています。 ---------------------- フォーム <FORM NAME="objform" action="yes.php" METHOD="POST" ENCTYPE="multipart/form-data"> <INPUT TYPE="hidden" NAME="MAX_FILE_SIZE" VALUE="1000000"> <INPUT TYPE="file" NAME="img1" SIZE="40"><BR> <INPUT TYPE="submit" NAME="submit" VALUE="アップロードする!!"> </FORM> ーーーーーーーーーーーーーーーーーーーー yes.phpの中身 $updir = "./photo/"; $filename = $_FILES['upfile']['name']; //form の「upfile」の値 move_uploaded_file($_FILES['upfile']['tmp_name'], $updir.$filename); -------------------------- これでphoto のフォルダに格納されるようにしているのですが、 もし、同じファイル名でアップされた場合上書きされてしまいます。 IDをつけるか、もしくはその他の方法でファイル名が重複されないような設定にするにはどうすればよいでしょうか。 現在PHP勉強中です。 初歩的なことかもしれませんが、 よくわからないのでアドバイスを頂けると助かります。 よろしくお願いします。 php ファイルアップロード サイズ設定どうしたらいい?? 以下のphpファイルアップロードプログラムを書いたが、 ファイルサイズ5MBを超えるとアップロードできなくなることに困っています!! Upload_max_filesizeとかあるようですが、設定はわかりません。 まったくの新米ですので、教えてください。 Html部: <form action="upload.php" form method="post" enctype="multipart/form-data"> <p> <input type="file" name="uploadfile[]" size="75"> </p> <p> <input type="file" name="uploadfile[]" size="75"> </p> <p> <input type="file" name="uploadfile[]" size="75"> </p> <p> <input type="file" name="uploadfile[]" size="75"> </p> <p> <input type="file" name="uploadfile[]" size="75"> </p> <p> <input type="file" name="uploadfile[]" size="75"> </p> <p> <input type="file" name="uploadfile[]" size="75"> </p> <p> <input type="file" name="uploadfile[]" size="75"> </p> <p> <input type="file" name="uploadfile[]" size="75"> </p> <p> <input type="file" name="uploadfile[]" size="75"> </p> <p> <input type="submit" name="submit" value="- Upload -"> </p> </form> php部: <?php // 実行ボタンが押された時 if (isset($_POST["submit"])) { for ($i = 0; $i < 10; $i++) { $movetofile = "files/" . $_FILES["uploadfile"]["name"][$i]; move_uploaded_file( $_FILES["uploadfile"]["tmp_name"][$i], $movetofile ); } echo "Thank you very much for your uploading."; } ?> ファイルをアップロードすると文字化けしてしまう。 PHP初心者です。カテゴリで同じような質問を捜したのですが見つからず、質問させて頂きました。よろしくお願い致します。 windowsXPでPHP4.4.4+MYSQL+Apacheを使用しており、PHPの内部コードはEUC-JPで出力はSJISです。 写真のアップロードとコメントをつけたいと思い本を見ながら↓を作成したのですが、 写真(ファイル名)&コメントをブラウザで表示すると文字化けしてしまって困っております。 どうすれば文字化けせずに表示できるようになるか教えて頂ければと存じます。 ※up.php(写真の選択&コメントをする画面です) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> <title>登録</title> </head> <body> <form action="kakuninn.php" name="make1" method="post" enctype="multipart/form-data"> <p> <input name="image1" size="40" type="file"> <input type="image" name="image_up" src="../img/upload.gif" alt="アップロード"> </p> <p>コメント</p> <p> <input name="kome" type="text" value="" maxlength="50"> </p> <p> <input type="submit" name="Submit" value="送信"> </p> </form> </body> </html> ※kakuninn.php(ファイル名とコメントを確認する画面です。) <?php print("文字コード(画像):".mb_convert_encoding($image1,"auto")."<br>"); print("文字コード(コメント):".mb_convert_encoding($kome,"auto")."<br>"); print("画像:".$image1."<br>"); print("コメント:".$kome."<br>"); ?> 例えば、写真欄に「写真1.jpg」、コメント欄に「コメント」として、送信ボタンを押すと↓の結果となります。 文字コード(画像):C:\WINDOWS\php24A.tmp 文字コード(コメント):?R?????g 画像:C:\WINDOWS\php24A.tmp コメント:?R?????g 画像ファイルアップロード PHP初心者です。以下のスクリプトを参考書を参考に記述しました。リンクでtmpfileが表示されるのはわかるのですが、このファイルに画像を表示するにはどうしたらいいですか?<img src="">で表示されなかったので、他に表示方法はあるのですか?また画像を表示したときにimagecopyresampled();を使ってサイズを設定したいと思っています。 <?php print <<<HTML <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis" /> <title>ファイルのアップロード</title> </head> <body> <p>ファイルのアップロード</p> <form method="post" enctype="multipart/form-data" action="index.php"> <input type="hidden" name="maxfilesize" value="10000" /> アップする写真データ<br> <input size="30" type="file" name="upfile" /><br /> <input type="submit" name="submit" value="送信" /> <input type="reset" name="reset" valuie="リセット" /> </form> HTML; if($submit !=""){ if($submit == "none"){ print"ファイルのアップロードができませんでした。"; exit; } copy($upfile,"tmpfile.txt"); print"アップロードされたファイルの情報<br>"; print"ファイル名:$upfile_name<br>"; print"ファイルサイズ:$up_size<br>"; print"ファイルタイプ:$up_type<br>"; print"<a href=\"tmpfile\">ファイルへリンク</a><br>"; } print <<<HTML </body> </html> HTML; ?> 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター プログラミング・開発 Microsoft ASPC・C++・C#CGIJavaJavaScriptPerlPHPVisual BasicHTMLXMLCSSFlashAJAXRubySwiftPythonパフォーマンス・チューニングオープンソース開発SEOスマートフォンアプリ開発その他(プログラミング・開発) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
お礼
ご回答ありがとうございました。 globという関数があることを知りませんでした。 検索すると、使い方が詳しく掲載されたサイトが沢山あるので、何とかできそうです。 ありがとうございました!