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で質問しましょう!
似たような質問が見つかりました
- HTML・CSS Dreamweaver のテンプレートでの相対パスの設定について 2 2023/06/13 17:28
- その他(IT・Webサービス) 301リダイレクトの使い方について 7 2022/04/05 17:50
- JavaScript javascriptで移動ボタンを押した際に遷移するボタンを追記したい 1 2022/11/29 03:02
- サーバー Googleドライブなどを使わずにテザリングAndroidでWindowsとファイル共有 1 2023/02/19 13:14
- C言語・C++・C# condaコマンドに対応したプロキシ設定が思うようにならないようです。 2 2022/04/11 17:15
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- その他(コンピューター・テクノロジー) <a href="file:///フォルダ名/ファイル名">リンクテキスト</a>について 1 2023/04/06 22:40
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ボタン2回押しを無効にしたい
-
<form action="#">の意味とは?
-
confirmのOK・キャンセルを押し...
-
ボタン無しでフォーム内容送信
-
VBSでブラウザ上のテキストボッ...
-
正規表現で複数マッチ条件で悩...
-
<td>の中のonClick="location" で
-
JavaScriptにて動的に配列を作...
-
背景色を変えて未入力チェック...
-
【jsp/Java】チェックボックス...
-
javascriptで画像の移動
-
selectを変更不可にしたい
-
selectを使った計算
-
セレクトメニューで選択された...
-
テキストフィールドに入力した...
-
フォームから入力すると、入力...
-
JSのボタンを複数う使うには
-
空のテーブルを表示させたい
-
【jQuery】tableループ内のIDの...
-
リンクの追加
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBSでブラウザ上のテキストボッ...
-
submitするとなぜか2度実行する
-
onclickで2個指定するには?
-
confirmのOK・キャンセルを押し...
-
ボタン2回押しを無効にしたい
-
フォーム内で記入したクエリ送...
-
onClick="this.form.submit
-
JavaScriptにおいてPOSTで送信...
-
disabled プロパティが表示され...
-
確認ダイアログの出し方(JavaS...
-
onclickをEnterキーでも行いたい
-
jsで質問です。 ボタンが二つ存...
-
ボタン無しでフォーム内容送信
-
confirm()で表示したダイアログ...
-
ボタンを押すとチェックボック...
-
javascriptで二重送信防止
-
VBScript
-
メールフォーム:「必須項目」...
-
Javascriptで二重送信を防止し...
-
ホームページビルダーでメール...
おすすめ情報