• ベストアンサー

<form>でアップロードする画像を表示させたい

<form>でユーザーの名前や顔写真を入力してもらってサーバーに送るルーチンを作っています。ユーザーがアップロードしたい自分の写真を選んだときに、確認のためにその写真を表示させたくて、下のようなコードを書きましたが、写真が表示されません。 いろいろやっていて、<input type="file">を参照したときに戻される値は、写真のフルパスではなくて最後のファイル名だけだとわかりましたが、これをフルパスのURLで取得する方法はないでしょうか? <script type="text/javascript" language="javascript"> function dispGazo(){ document.getElementById("kao").src="'"+document.getElementById("userGazo").value+"'"; } function checkInput(){ if( document.forms[0].userName.value == ""){ alert("お名前は必ず入力してください。"); return; } } </script> . . . . <form enctype="multipart/form-data" accept-charset="UTF-8" method="post" action="QAtouroku.php" onsubmit="checkInput();"> <table border="1" width=80%> <tr><td>お名前:<input type="text" name="userName" size=30> </td></tr> <tr><td>お写真:<input type="file" name="userGazo" id="userGazo" size=80 value="右のボタンを押して、登録する画像ファイルを探します。" onchange="dispGazo();"></td> </tr> <tr><td><img id="kao" width=100 alt="写真" ></td></tr> . . . </table> </form> どうかよろしくお願いします。 papashiro

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

  • ベストアンサー
  • inu2
  • ベストアンサー率33% (1229/3720)
回答No.2

ローカルPC上にあるファイルを操作できたら、かなりヤバイですよ。 なんでもし放題になります。 JavaScriptではローカルPC上にあるファイルを直接操作することはできません。 擬似的に画面遷移をさせたくないのであれば、AJAXなどで裏方で実際にsubmitさせてから画面表示させることであれば可能かと思います。

papashiro
質問者

お礼

ご回答ありがとうございました。 基本的なセキュリティーのことがわかってなかったようで、お恥ずかしい限りです。 papashiro

その他の回答 (1)

  • kichiwave
  • ベストアンサー率41% (10/24)
回答No.1

ローカルのファイルを参照することになるので javascriptだけだとセキュリティ上できないはずです なので一度アップロードしたファイルをサーバ側で受け取って サーバ側のファイルとして表示させる処理が必要になります。

papashiro
質問者

お礼

ご回答ありがとうございました。 基本的なセキュリティーのことがわかってなかったようで、お恥ずかしい限りです。 papashiro

関連するQ&A

専門家に質問してみよう