• 締切済み
  • 困ってます

ファイルのダウンロードダイアログが2度表示される

いつも拝見させて頂いており、お世話になっています。 ただ今困った事象が発生していて、お知恵をお借りしたく、投稿させて頂きます。 サーブレットで CSV データを作成し、直接データをダウンロードさせたいのですが、 OSが「WindowsXP SP1(SP2では未確認)」だと、ファイルのダウンロードダイアログで ”開く”を選択すると、同じダイアログが 2度表示されてしまいます。 (2度とも”開く”を選択すると、問題なくファイルは開かれます) ”保存”を選択した場合は2度は表示されません。 また、「Windows2000」の場合はこのような現象は発生しません。 ソースの要所は以下のようになっています。 response.setContentType("application/x-download;charset=Windows-31J"); response.setHeader("Content-Disposition", "attachment; filename=\"***.xls\""); 上記の1行目の「x-download」は「octet-stream-dummy」「msexcel」で 試してみましたが、結果は変わりませんでした。 また、2行目の「attachment」を「inline」にすると、 2度ダイアログが表示されるのは回避できますが、”開く”を選択すると ブラウザにExcelファイルの内容が表示されてしまいます。 もしかするとプログラムではなく端末の設定の問題かもしれませんが、 手元には2000とXPが1台づつあるだけなので、 これもなんともいえません。 どなかた解決方法をご存知の方がおられましたら、 御教授頂けますでしょうか。 よろしくお願いします。

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数1060
  • ありがとう数0

みんなの回答

  • 回答No.2

こちらを参考にしてはいかがでしょうか? 同じ感じのことで悩まれている方はかなりいるようです。

参考URL:
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=5606&forum=12&8

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • ダウンロードダイアログについて

    ダウンロードダイアログ表示を、キャンセルした場合のみ(保存or開くの場合は無し)他のファイルのダウンロードダイアログを表示させるJavascriptの具体的な内容を教えてくれませんか。

  • ファイルダウンロード時のダウンロードダイアログ

    ファイルをダウンロードするときに開く、ダウンロードダイアログ(選択画面)の質問です。 私のPCでは、「開く」「保存」「キャンセル」と3種類の選択が出てきますが、他のPCでは「保存」「キャンセル」の2種類しか選択が出ません。 最終的には、ファイル内容を確認することができますが、私と同じように操作したいので、PCの設定方法を教えていただけますか? よろしくお願い致します。

  • ダウンロードダイアログを表示する方法

    ダウンロードダイアログを表示して、ローカルの任意のフォルダーにファイルをDLさせる具体的なコードを教えてください。

  • 回答No.1

当方でも同様の現象が発生しております。 ウインドウ図2000でも発生します。 IEのバグで間違いないと思われます。 解決方法は、クライアントを他のちゃんとしたブラウザに変えることです。 ちなみに当方で発生しているシステムはIE用に作ってしまったために、対応不可として処理しました。

共感・感謝の気持ちを伝えよう!

質問者からの補足

補足します。 > もしかするとプログラムではなく端末の設定の問題かもしれませんが、 > 手元には2000とXPが1台づつあるだけなので、 > これもなんともいえません。 上記にこのように書いていますが、 OSが2000の端末のIEのバージョンは6のSP1です。 それに対してXPの方は一切WindowsUpdateを行っていない為、SP1が入っていません。 OSが2000の端末では正常に動作するので、 もしかするとこのIEのバージョンによるのかも、 とも考えています。

関連するQ&A

  • 日本語名のファイルのダウンロード

    ファイルのダウンロードを行うservletを作成しています。 ところが漢字を含むファイル名のファイルをダウンロードしようとすると、ファイルのダウンロードダイアログでファイル名が正しく表示されません。どうやったら正しく表示できるようになるでしょうか?皆様のお知恵をお貸しください。 レスポンスヘッダには以下の設定をしています。 res.setContentType("application/octet-stream; charset=Shift_JIS"); res.setHeader("Content-Disposition", "attachment; filename=" + filename); filenameが"V003-0.pdf"の場合、ファイルのダウンロードダイアログで「ファイル名」は正しく表示され、「ファイルの種類」もAdobe Acrobat Documentとなりました。しかし"通達V003-0.pdf"というファイル名にしたら「ファイル名」は英数字に変わっており(さらに拡張子も表示されない)、「ファイルの種類」は表示されなくなってしまいました。 よろしくお願いいたします。

    • ベストアンサー
    • Java
  • ダウンロードダイアログをVBAから操作するには?

    ExcelVBAで、IEを操作してます。 submitでダウンロードダイアログが表示される HPで、ダウンロードダイアログを操作したい(保存、ファイル名指定)のですがどういう方法がありますか? 対象オブジェクト.sendkeysも考えましたが 対象オブジェクトが何であるのかわかりません。 どうかよろしくお願いします。

  • ダウンロードダイアログを表示するには

    会社のホームページを作り直しています。 会社のホームページの中から、ダウンロードダイアログを表示させ 社報(pdfファイル)をダウンロードできる様にしたいのですが、方法がわからず困っております。 詳しい方、ご教授下さい。 スクリプトはjavascriptです。 いろいろ調べてみて、サーバーに細工をする方法や、ASP.NETでのプログラム等参考例はありましたが、うまくいきません。どうかよろしくお願いします。

  • ダウンロードダイアログなしでローカル端末にダウンロードするには

    ASPにおいてDBよりデータを抽出し、CSVファイル形式としてローカル端末の指定ディレクトリにダウンロードしたいのですが、ご教授お願いします。本当に困っています!!! ここで問題になるのが 1.ダウンロードダイアログを表示せずにローカル端末の固定のディレクトリにダウンロードしたいということ。 2.ダウンロードするファイルは1度に2,3ファイルあるということです。 ちなみに Response.AddHeader "Content-Disposition","filename=[ファイル名]" Response.ContentType = "application/octet-stream-dummy" ではファイル名指定しかできませんし、一度に2,3ファイルをダウンロードすることもできまん。これから発展させることはできるのでしょうか??違う方法でもいいのでいい案があったらご教授ください!!! よろしくおねがいします!!!!!

  • Excelファイルをダウンロード

    Webページ上のあるボタンを押した時、サーバー上にExcelファイルを作成し、そのファイルをそのままクライアントにダウンロードするプログラムをつくろうとしています。その時、ダウンロードダイアログを表示させ、クライアントが任意の場所に保存できるようにしようと思っています。とりあえずファイルをダウンロードするクラスを下記のように作りました。 public class download { public static final int EOF=-1; public void downloader(HttpServletResponse res){ try { String fileName = "testExcel1.xls"; String CONTENT_TYPE = "application/atom"; res.setContentType(CONTENT_TYPE); res.setHeader("Content-Disposition", "filename=\""+ fileName +"\""); URL urlObj=new URL("サーバーアドレス:8080/DB/testExcel.xls"); InputStream in = urlObj.openStream(); FileOutputStream(new File("testExcel1.xls")); BufferedOutputStream bout= new BufferedOutputStream(res.getOutputStream()); int c; while( (c = in.read()) != EOF ) { bout.write(c); } bout.flush(); in.close(); } catch (Exception e ) { e.printStackTrace(); } } } このまま実行するとダウンロードダイアログは表示されず、Excelファイルの内容がクライアントのブラウザ上に表示されてしまします。どうしたらダウンロードダイアログが表示されるようになるでしょうか。アドバイスよろしくお願いします。

    • ベストアンサー
    • Java
  • CSVファイルダウンロードダイアログのキャンセルイベント取得方法

    こんにちは。 色々調べてみましたが、なぜかどこにも答えが見つかりませんでしたのでご教授よろしくお願いします。 ASPでCSVファイルをダウンロードする際、 Response.AddHeader "Content-Disposition","attachment; filename=AAA.csv;" としてダウンロードダイアログを出力しています。 このダイアログで、キャンセルボタンのクリックイベントと取りたいのですが、どのようにするのでしょうか? キャンセルした場合、以降に続くサーバサイドの処理をスキップさせたいのですが… よろしくお願いします!

  • ファイルのダウンロードダイアログがでない

    ブラウザ(IE7)からzipファイルをクリックした際にファイルのダウンロードを確認するダイアログが表示されず、「Temporary Internet Files」に自動的に保存されてしまいます。 最初は確認のダイアログが出ていたのですが、あるときから突然でなくなってしまいました。 どのような設定をすると元に戻せるのでしょうか?

  • ファイルのダウンロードダイアログが表示されるが保存ができない

    PCのメーカーはDELL XPSでOSはWindows Vistaを使っております。 表題のとおり、ファイルのダウンロードができません。 詳しく説明すると、ファイルをダウンロードしようとすると 保存ダイアログが表示され、「開く」か「保存」を選択できるのですが どちらを押しても、クリックした瞬間にウインドウが閉じてしまいます。 また、右クリックで「対象をファイルに保存」を選択しても何も起こりません。 セキュリティソフトはマカフィーが入っていますが切って試しましたし インターネットオプションのセキュリティの詳細設定や保護のオンオフも試しましたがだめでした。 他の方々の質問と違って、「保存のダイアログが表示されない」や 「ダウンロードが完了したのに指定したフォルダにファイルが存在しない」のではなく 「ダウンロード自体がまったく始まらない」という状況で、解決策が見当たりません。。。 もし度どなたか同様の症状が起こり、解決された事があるなら教えていただけないでしょうか? よろしくお願いいたします。

  • ファイルのダウンロードが遅い

    windows環境のクライアントPCにブラウザからファイルをダウンロードさせる javaプログラムを作成しています。 linuxのサーバー側でcsvを圧縮したzipファイルを作成しているのですが zipの作成処理までは速いのに、その後のファイル保存のダイアログに とても時間がかかります。なぜなのか分からず困っています。 以下、保存ダイアログ表示のコードです。 --------------------------------------------- FileInputStream fi = new FileInputStream(ファイルパス/temp.zip); byte[] b = new byte[fi.available()]; for (int i = 0; i < b.length; i++) b[i] = (byte)fi.read(); response.setContentType("application/octet-stream; charset=Windows-31J"); response.setHeader("Content-Disposition","attachment; filename=\"temp.zip\""); response.setContentLength(b.length); ServletOutputStream os = response.getOutputStream(); os.write(b); os.close(); fi.close(); --------------------------------------------- ご教授お願いします。

    • ベストアンサー
    • Java
  • ファイルのダウンロード先を初期設定するには?

    サーブレットにファイルをダウンロードする機能を入れたいと思って います。 現在、HttpServletResponseオブジェクトを使用して下記のようにコー ディングしています。 ============================================= response.setHeader("Content-Disposition", "attachment;filename=sample.xls"); response.setContentType("application/vnd.ms-excel"); ============================================= これで問題なくダウンロードは出来るのですが、ダウンロード先の初期 表示をブラウザ(現在、IEを使用してます)に依存するのではなく、予 め指定したフォルダを初期表示して欲しいとの要望がありました。 ダウンロード先を初期設定するとはいえ、ユーザーが自由にファイル名 やダウンロード先を指定する機能は必要なので、FileOutputStreamを使 用してのファイルの保存は考えていません。 どのようにすれば、実現するのでしょうか? また、ファイルのダウンロード先を初期設定することは可能なのでしょ うか? それさえ判断が出来ずに困っています。 もし絶対に無理!ということであれば、それを教えて頂けるだけでも助 かります。

    • ベストアンサー
    • Java