![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67b6d)
ie8で、javascriptを使ってsubmit()しファイルをアップロードしようと思ったのですが、Webサーバがまったく反応しません。Firefoxとchromeでなんの問題もなかったのでIE8固有の問題だと思うのですが、解決された方はいますでしょうか?手がかりが記載されているサイトでもいいので教えてください。
ちなみにhttp://support.microsoft.com/kb/890981/jaで問題になっている相対パスは入れていません。IE8が出力したファイルパスをそのまま使用しています。
No.2ベストアンサー
- 回答日時:
JavaScriptを使って<input>に文字列を入力し、そのままform.submit()してるんでしょうか?
その方法はセキュリティーホールとなる可能性が高く、各ブラウザが<input>への入力を制限するなどし、
それにより、form.submit()は<input>が空のまま送信されるということがありました。
FirefoxやChromeは頻繁にアップデートされ、その度にセキュリティー関係のチェック方法が変わっていますから、
以前は送信できなかったものが送信できるようになった、ということがあるかもしれません。
<form 略 target="iframe">
<input type="file" name="file">
<input type="submit" value="submit">
</form>
<script>
document.forms[0].file.value='c:\セキュリティーや個人情報に関するファイルパスを推測したもの;
document.forms[0].submit();
</script>
IE8はこの制限を引き続きかけているなら、送信できないことが正しい動作になると思います。
<input type="file">のファイル選択ダイアログから選択すれば、相対パスが入力されるということはありませんから、正常に送信できると思います。
ご参考まで。
回答ありがとうございます。
ご指摘のとおりie8の仕様でファイルパスが自動で書き換えられて死んでいたようです。
参考
http://msdn.microsoft.com/en-us/library/ms535128 …
http://scripting.cocolog-nifty.com/blog/2009/05/ …
上記参考サイトからie8の設定を変えて、確かにvalue値は絶対パスが入るようになったものの、フォーム上の変数値は全てwebサーバ側(PHP)で確認できるのですが、今度はwebサーバ(PHP)にファイルデータが送られてこない状況に陥っています。
何か気になることがあったら引き続きヒントを頂ければと思います。
No.1
- 回答日時:
私も、IE8では色々苦労しています。
動作をデモできる、簡単なHTMLを提出できないなら、
アドバイスを貰うのは、難しいのでは。
言葉だけでは、実際どこがどうなのか解らない。
1つアドバイスできるとすれば、デバッグはしてみたのでですか?
alertを使った原始的な方法や、Firebugによる方法など。
回答ありがとうございます。
動作をシンプルなデモ用意できればいいのですが、実際動かしているプログラムが煩雑で検証環境を提示できるような感じではなかったためヒントだけでも得られればと質問致しました。
後でわかったのですが、表示上では、C:\users\contoso\documents\file.txtと絶対パスが付されていたため、絶対パスだよなと、value値調べなかったのですが、value値を調べると、c:\fakepath\file.txtと書き換えられていました。これはどうやらie8の仕様らしく、
参考
http://msdn.microsoft.com/en-us/library/ms535128 …
http://scripting.cocolog-nifty.com/blog/2009/05/ …
ie8側で[インターネットオプション][セキュリティ][インターネット][レベルのカストマイズ]「サーバにファイルをアップロードするときにローカルディレクトリのパスを含める」
を「有効にする」。をやってみたのですが、
確かにvalue値は絶対パスが入るようになったものの、今度はwebサーバ(PHP)にファイルデータが送られてきません。
送った変数値は全てwebサーバ側(PHP)で確認できるのですが、ファイルデータに関して$_FILES['Upload']['tmp_name']を調べても何もありません。今はここまで詰まっている状態です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBSでブラウザ上のテキストボッ...
-
onclickで2個指定するには?
-
入力フォームの個数の変化について
-
ボタン2回押しを無効にしたい
-
ボタンを押すまで次の処理へ行...
-
ボタンを押すとチェックボック...
-
プルダウン 項目が多いので先頭...
-
JQuery Mobileでチェックボック...
-
ラジオボタンの選択で解答・点...
-
ブラウザの戻るボタンを押した...
-
【jQuery】input nameの文字列...
-
JavaScriptde途中で、「exit」...
-
return trueとreturn falseの用...
-
確認ページからフォームページ...
-
動的にTabindexの値を変えたい!
-
tableの任意行にfocusをあてる
-
FormのonsubmitでJavaスクリプ...
-
JSPとJavaScriptの連携について...
-
HTMLファイル同士での値渡し
-
ラジオボタンにタブインデック...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
submitするとなぜか2度実行する
-
onClick="this.form.submit
-
confirmのOK・キャンセルを押し...
-
フォーム内で記入したクエリ送...
-
onclickをEnterキーでも行いたい
-
ボタン無しでフォーム内容送信
-
VBSでブラウザ上のテキストボッ...
-
onclickで2個指定するには?
-
ボタン2回押しを無効にしたい
-
確認ダイアログの出し方(JavaS...
-
sessionの値でボタンを活性・非...
-
送信フォームで送信ボタンをお...
-
jsで質問です。 ボタンが二つ存...
-
confirm()で表示したダイアログ...
-
JavaScriptにおいてPOSTで送信...
-
メッセージボックスで「はい」...
-
VBScript
-
Javascriptで二重送信を防止し...
-
HTAで、こんなボタンが作りたい。
-
印刷プレビュー後のウィンドウ...
おすすめ情報