• ベストアンサー

htmlのfileタグに自動で値を入れる方法

htmlのタグでいって <input type="file">を用いてファイルをサーバーにアップロードしたいと思っています。で、このとき、ファイル名は任意に選べるのではなく固定で送信したいと思っています。 すなわち、HTMLを読み込んだ時点で、fileのテキストボックスにファイルパスが埋め込まれているか、JavaScriptで、ファイルパスを自動入力するようにしたいと思っています。 最終的には、form内のオブジェクトをすべて非表示にし、onload時にsubmitするような形にしたいと思っています。いろいろ事情があって苦肉の策になっています…。 とりあえず(だめだとは思っていたのですが) <input type="file" value="ファイルパス" name="filepath"> と直書きにしてみたり document.all.filepath.value = "ファイルパス"; などとしてみたりしましたがだめでした…。 W3C勧告の使用上はvalueでファイルパスを指定できるようになっているようなのですが、現在の一般的なブラウザでは禁止されているようですね。 このような場合、何らかの方法でfileにファイルパスを自動入力することはできますでしょうか? もしできない場合、何らかの方法で実現する方法はありますでしょうか?よろしくお願いします。 ちなみに実現できればいい環境は WinXP環境のIE6です。言語はクライアント言語はJavaScriptのみで、という条件付です。 できないかもしれないのですが、こういうのって必要になるときもあるよなーなどと思っており、もしかしたら解決方法があるかもしれないと思い質問しました。よろしくお願いします。

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

  • ベストアンサー
  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.5

やっぱ無理じゃないでしょうか。 なにか裏ワザ的な方法で一時的にできたとしても、いつか直されるかもしれないのでおいそれとは使えないし。 >W3C勧告の使用上はvalueでファイルパスを指定できるようになっている →参考URL 「ユーザが明示的に送信を求めたファイル以外のものは送ってはいけない」とあります。

参考URL:
http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/appendix/notes.html#forms-security
arakororin
質問者

お礼

>→参考URL 「ユーザが明示的に送信を求めたファイル以外のものは送ってはいけない」とあります。 うわ。なんか勘違いしてたみたいです。有用な情報ありがとうございます。

その他の回答 (6)

  • bobviv
  • ベストアンサー率50% (13/26)
回答No.7

 すでにご指摘のとおり、セキュリティ上の理由からfileフォームにはスクリプトで値を設定できないようになっているようです。詳細は知りませんが、セキュリティ上の理由からそうなっているということは、おそらく『回避手段など存在しない』と考えたほうがいいと思います。  つまり、ふつうはあきらめるべきだということです。時間の無駄です。あなたがクラッカーなら別ですが^^。 

arakororin
質問者

お礼

ありがとうございます。

  • kosa
  • ベストアンサー率25% (379/1464)
回答No.6

もしかして方向性が違った回答になるかもしれまんせが、間違っていれば気にしないで下さい。 ファイル名を固定にする理由がよくわかりませんが、凄く面倒なことをしていることからソースを見られるとまずいということですよね? そういうことならば、FALSHでフォームを作成してあげればソースを見られることなく、もっとシンプルに作る事ができると思うのですが・・・

arakororin
質問者

お礼

ありがとうございます。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.4

ちょっと前まで通常formのsubmitもセキュリティ上の 理由からスクリプトから実行できなかった 記憶があります。 便利とセキュリティは表裏一体ですからねぇ。 もし可能であれば、PC上のすきなファイルをがんがん 抜いたり、でかいファイルを攻撃先におくりつけたり いろいろできてしまうでしょう。

arakororin
質問者

お礼

ありがとうございます。 >ちょっと前まで…submitも…できなかった そうなんですか。それは面白い情報ですね。 そうなんですよ。それで困っているのです。 無理でしょうかね。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

<input type="file"> は、セキュリティ上の理由から(そのページにアクセスした時に、自動的に指定されたファイルが抜かれてしまうことになる)スクリプトから値の設定はできません。

arakororin
質問者

お礼

ありがとうございます。そうなんですよね。 で、なんとかならないものかと思っているのです。 追加しますと、固定ファイルとは自由に書式を変更できるので、もうほんとに最悪の場合、base64エンコーディングしてjsファイルの変数の文字列としてでも持たせて、それを読み込んでform中の要素に設定し送信とか、そんなものすごい方法を考えているのですが、すこしやりすぎなのでもう少しまともな方法はないかと思っているしだいであります…。

noname#210211
noname#210211
回答No.2

勘違いしておりましたね、やはり。では後は識者に任せます。 不愉快な思いをされたようで失礼しました・・・お許しを。

noname#210211
noname#210211
回答No.1

JavaScriptはクライアント側、ブラウザを動かすものであってサーバを動かすわけじゃありません。そうなると違う言語(Perlなど)を利用するしかないと思われます。

arakororin
質問者

補足

サーバーの構成は書く必要はないと思ったのですが、誤解される方がおられるようなので書いておきます。サーバーサイド言語はJavaでサーブレットでの稼動になります。 そのサーブレットにhtmlから情報をpost送信するときの話です。そのときの情報の中に、あらかじめ定められたファイルを含めたいということです。

関連するQ&A

  • JavaScriptのfileオブジェクト(input type="file")の選択を初期化したい

    fileでユーザーが選択したファイルを、未選択の状態にしたいのですができません。 valueプロパティを""にしてもnullにしても、元の値(ファイルパス)が入ったままです。 HTML: <input type="file" name="picture_file"> JavaScript: document.form_main.picture_file.value = ""; alert(document.form_main.picture_file.value); document.form_main.picture_file.value = null; alert(document.form_main.picture_file.value); どうにかして初期化する方法はありますでしょうか?file以外のほかのinput項目は変更せず、また画面遷移もせず実現する必要があります。

  • input type="file"に入力するには?

    わからなかったので質問させてください。 inputtype="text"のときは入力できたのですが以下の方法で入力できたのですがfile場合はできないのでしょうか?。 入力したいのはファイルパスです。 ファイルパスを入力して画像ファイルをアップロードさせてたいのですがどのようにすればいいでしょうか。 どなたかご教授ください。 <input type="file" name="file" size="30"> WebBrowser1.Document.All.GetElementsByName("file")(0).InnerText = TextBox1.Text

  • [html]<input type="file">タグの参照ボタンを画像ボタンにした時のsubmitの方法

    なにから書けばいいのか難しいのですが… とりあえず、先日次のような質問をしました。 【[html] <input type="file">タグの参照ボタンを画像ボタンにしたい。】 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1244273 その中のやり取りにあるように、参照ボタンを画像にすることはできたのですが、実際に参照ボタンを画像にしてからsubmitすることができなくなってしまいました… いろいろ調べてみましたら、どうやら<input type="file">をjavascript等でclickして値を入れると、セキュリティ上submitできないみたいなのです。実際そのフォームがsubmitに対して無反応になります。javascriptで強引にsubmitしようとすると"アクセスが拒否されました"のエラーがでます。 なんかごちゃごちゃになってきた… 今自分が実現したいのは、以下の2つです。 1.<input type="file">の参照ボタンを画像にしたい。 2.1を実現後そのformをsubmitしたい。 どなたか実現している方がいましたら、ご教授ください。 IE6で動けば問題ないです。 すみませんコードは文字制限に引っかかって載せれなかったです…

    • ベストアンサー
    • HTML
  • type="file"の<INPUT>タグに任意のファイルを指定したい

    HTMLの <INPUT>タグの "type"プロパティを、"file"とし、 この項目のデフォルトの値、もしくは JavaScriptからファイルを直接指定するということは 可能でしょうか。 ご回答をよろしくお願いいたします。

    • ベストアンサー
    • HTML
  • input type="file"を使わずにファイルをアップロードする方法

    Formで fileの入力フォームを使用せずに、ファイルをアップロード する方法を探しています。 要は、特定のローカルディレクトリの中のファイルを一括して転送したい のですが、input type="file" を使わずに行えるようにしたいのです。 使っている環境はPHP5?です。 何卒宜しくお願いいたします。

    • 締切済み
    • PHP
  • input type="file"のvalue監視

    input="file"のvalue値が変更されたら別のテキストフィールドに表示するというScriptを書いたのですが動作してくれません。 input="file"ではなく普通のテキストフィールドならば動作します。 fileフィールドでは動作しないのでしょうか。それとも書き方がまずいのでしょうか。 以下、ソースです。 <html> <head> <title>test</title> <script type="text/javascript" src="/javascript/prototype.js"></script> </head> <body> <form action="" enctype="multipart/form-data" method="post"> <input id="file_test" name="file_test" type="file"> <br> <div id="result">表示</div> <script type="text/javascript"><!-- window.onload = function() { new Form.Element.Observer('file_test', 1, function(element, value) { document.getElementById('result').innerHTML = value; }); } //--></script> </form> </body> </html> よろしくお願いします。

  • テキストボックスへの値の代入と、PHP

    function setvalue(){ document.getElementById("text3").value = "ユニックス"; } として、JavaScript側で、参照ボタンが押された時に、 id がtext3 のテキストボックスに値を代入したい場合、、 HTML側で <INPUT type="button" value="参照" onclick="setvalue()"> <INPUT type="text" name="言語" id="text3" size="30" class="ws1" #######> ######の部分に、value属性(value="~")は何も書かなくてもいいのでしょうか。 また、これはJavaScriptの関数を呼んでテキストボックスへの値の代入を実現していますが、 これを、PHPスクリプトで、実現する方法はないでしょうか。 ご指導、よろしくお願いします。

    • ベストアンサー
    • Java
  • inputタグはformタグで必ず囲む必要がありますか?

    <input type="text">や< input type="button">などのinputタグは、入力欄に入力されたデータを他のファイルに送らずに同ファイル内で処理する場合も、必ず<form></form>で囲む必要があるのでしょうか? 例えば、<input type="text" id=”background_color”>に色(例:赤、青等)を入力し< input type="button" value=”変更” onClick=”change_background()”>ボタンを押すと、バックグラウンドの色が入力された色に変わるようなコードを書くとします。Javascript(change_background())の内容は同ファイルの<header></header>内に記述しますが、ここでは関係ないので割愛します。 この場合、 <body> <input type="text" id=”background_color”> < input type="button" value=”変更” onClick=”change_background()”> </body> で良いのでしょうか? それとも <body> <form> <input type="text" id=”background_color”> < input type="button" value=”変更” onClick=”change_background()”> </form> </body> とする必要が、ありますか? よろしくお願いします。

    • ベストアンサー
    • HTML
  • <input type="file">タグで「キャンセル」か「開く」を取得したい

    いつもお世話になります。 <input type="file">タグで、 ファイル選択ダイアログを開いたあとに、 「キャンセル」を押したのか、 ファイルを選択したのか(「開く」を押したのか)を 取得する方法はないのでしょうか? よろしくお願いします。

  • fileUploadオブジェクトへの値の代入 (困っています。教えてください。m(__)m)

    こんばんは。 fileUploadオブジェクトへの値の代入がどうにもこうにもできません。 いったいどうしたらいいのでしょうか?どうか助けてください。 よろしくお願いいたします。m(__)m -- <HTML><BODY> <FORM NAME="myFormF"> <INPUT TYPE="file" NAME="myFile"> <INPUT TYPE="button" value="set FILEFILE -> file" onClick="document.myFormF.myFile.value='FILEFILE'"> <INPUT TYPE="submit" onClick="alert(document.myFormF.myFile.value)"> </FORM> <FORM NAME="myFormT"> <INPUT TYPE="text" NAME="myText"> <INPUT TYPE="button" value="set TEXTTEXT -> text" onClick="document.myFormT.myText.value='TEXTTEXT'"> <INPUT TYPE="submit" onClick="alert(document.myFormT.myText.value)"> </FORM> </BODY></HTML> -- key: fileUpload object,ファイルアップロードオブジェクト,WSH,javascript

専門家に質問してみよう