- ベストアンサー
[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で動けば問題ないです。 すみませんコードは文字制限に引っかかって載せれなかったです…
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
試してみたところ、submitはキャンセルされてtype="file"の入力内容がクリアされますね。 (クリアされた状態でもう一度submitボタンをクリックすると送信できる。) 私的にはセキュリティ強化としても厳し過ぎる気もしますが・・・今の時点で何か方法が見つかっても今後セキュリティホールとして塞がれてしまう可能性もあるので、諦めたほうがいいのかもしれません。
その他の回答 (1)
- うぃず(@Wizard_Zero)
- ベストアンサー率69% (344/495)
Wizard_Zeroと申します。 いろいろと試してみましたが、だめですねぇ…。 ○ 参照ボタンで選択 × スクリプトで選択 × 参照ボタンで選択 → スクリプトで選択 × スクリプトで選択 → 参照ボタンで選択 私の感想としては、FILEタイプを持つINPUTのVALUE関連項目に対して少しでもスクリプトが関与するとダメっぽいです。 単にClickメソッドを呼び出しても、「ボタンを押した」という完全なシミュレートにはなっていないようですね。 しかも、Submitでクリアされる時、Changeイベントさえ発生しない。 まぁ、#1さんのおっしゃるとおり、出来たとしてもいずれできなくなる可能性もありますし、ここは涙を呑んでデフォルトのまま使うしかないのではないでしょうか。
お礼
>Wizard_Zeroさん 回答ありがとうございます。 >単にClickメソッドを呼び出しても、「ボタンを押した」という完全なシミュレートにはなっていないようですね。 みたいですね。確かにfileタイプの目的としてファイルをアップロードすることが1つあると思うので、「ユーザーの意思によって送信された」状態でなければ危険ですから、納得と言えば納得です。 デフォルトの方向で行こうと思います。
お礼
>steel_grayさん 前回の質問に引き続き回答ありがとうございます。 なんとか抜け道を探そうとしていたのですが、 今後も考えると参照ボタンでやるのがベターですね。 問題は客がそれで納得するかだよなぁ… まぁ、「これができたらハッキングなんて簡単っすよ」とかいってみますw