• ベストアンサー
  • すぐに回答を!

CSVファイルのダウンロードについて

サーバー上にアップしたcsvファイルにアクセスすると ダウンロードの確認ダイアログが出ずに 画面上にテキストベースで表示されてしまいます。 フォルダオプションの設定で ダウンロード後に開くを確認するのチェックボックスを チェックしましたがうまくいきません。 宜しくお願いします。 ※Webサーバー・・・JRUN4 <-- sample.jsp --> <% response.setContentType("application/octet-stream-dummy; charset=iso-2022-jp"); %> <% response.setHeader("Content-Disposition","inline; filename=aaa.csv"); %> top.location.href=~aaa.csv ← ファイルのフルパス

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

  • 回答数1
  • 閲覧数311
  • ありがとう数0

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

  • ベストアンサー
  • 回答No.1

response.setHeader("Content-Disposition","attachment; filename=aaa.csv"); にするか response.setContentType("application/octet-stream; charset=iso-2022-jp"); にするかのどちらかで出来ませんか? 環境がないので検証はしていません。

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

関連するQ&A

  • ダウンロードが正常終了するけど件数が少ない。。。

    こんにちわ。 サーブレットであるファイルをダウンロードしようとしたら 実際のファイルの半分程度しかダウンロードできませんでした。 ちなみにアクセスログ上はダウンロード失敗等のエラーもでていません でした。。。 回線が途切れたわけでもないのにこのような現象が起こりえるのでしょうか? response.setHeader("Pragma", "private"); response.setHeader("Cache-control", "private"); response.setHeader("Content-Disposition", "inline; filename=\ファイルパス\"); response.setContentType("text/*; encoding=Shift_JIS"); の様な感じです。。。。 まず、HTTP上で消える、切れる等が起こりえるのでしょうか? どなたか経験のある方がいらっしゃればよろしくお願いします。

    • ベストアンサー
    • Java
  • BLOBをダウンロードして別ウインドウで表示したい。

    申し訳ありありませんが、どなたか答えていただけると幸いです。 byte[] data = bl.getBytes(1, (int)bl.length()); int imgSize = (int)bl.length(); String file = URLEncoder.encode(rs_index.getString(ファイル名)); response.setContentType("application/octet-stream-dummy"); response.setHeader("Content-Disposition","inline; filename=\"" + file + "\""); response.setHeader("Pragma", ""); response.setHeader("Cache-Control","max-age=0"); response.setContentLength(data.length); response.getOutputStream().write(data); response.flushBuffer(); こんな感じなのですが、IEでダウンロードして表示をしますと、 IEでEXCELなどが表示されてしまいます。 エクスプローラの設定をいじらずに、EXCELはEXCELで表示するように できないのでしょうか? HTMLのように、target="_blank"みたいにしたいのですが・・・ Java初心者なので、よくわかっていないかもしれませんが、 宜しくお願い致します。

  • ファイルのダウンロードダイアログが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台づつあるだけなので、 これもなんともいえません。 どなかた解決方法をご存知の方がおられましたら、 御教授頂けますでしょうか。 よろしくお願いします。

  • ファイルダウンロード後のフォワードについて

    サーブレット内で、ファイルのダウンロードをした後に処理をJSPへフォワードしたいのですが、現在、ダウンロードしたあとフォワードしてもJSPが機能しなくて困りました。 コードとしては以下の通りです(一部抜粋ですみません) /* ファイルダウンロードの設定 */ response.setContentType("application/octet-stream; charset=Shift-JIS"); response.setHeader("Content-disposition","attachement; filename= "+sgy_y+sgy_m+"_"+simekbn+".csv"); PrintWriter pw = response.getWriter(); /* CSVファイル出力 */ pw.println("あああ,いいい,ううう,えええ,おおお"); pw.println("かかか,ききき,くくく,けけけ,こここ"); pw.println("さささ,ししし,すすす,せせせ,そそそ"); pw.close(); /* JSPへフォワード */ getServletConfig().getServletContext().getRequestDispatcher("/xxx.jsp").forward(request,response); 何か良いアドバイスがありましたら、宜しくお願いします。

    • ベストアンサー
    • Java
  • csv形式でダウンロードさせたいのですが。

    はじめまして。 今回、JSPでデータベースからもってきた情報をcsvでダウンロードさせる仕組をかんがえているのですが、まずは簡単にダウンロードできるのか試しているのですが、ダウンロードまではできたのですが、中身がjspのファイルのコードがそのまま表示されてしまいます。 初心者なので、是非アドバイスをお願いしたいです。 よろしくお願いします。 以下そのコードです。 <%@ page import="java.io.*, java.util.*, java.sql.*, javax.sql.*, javax.naming.*" %> <html> <head> </head> <body> <% response.setContentType("application/octet-stream"); response.addHeader("Content-Disposition","attachment; filename=kibou.csv"); out.println("a,b,c,d"); %> </body> </html>

  • CSVファイルをダウンロード時のファイル名文字化けについて

    weblogic+java1.4.2+struts+IE6.0 でWebシステム開発を行っています。 CSVファイルをダウンロードする機能で、 CSVファイル名が全角で60バイト以上にしたとき、ダウンロード時のファイル名の先頭が 「08」、「C9」などに文字化けしてしまいます。 60バイト以内にするとファイル名は正常に表示されます。 ぜひこの現象に対する対応策、URLなどご存知の方はご教授ください。 また回避不可能な場合、理由または技術情報が明記されたURL、技術文献の情報などありましたら そちらもお教えください。 outputstream出力時のソースは以下の通りです。 ↓ try{ response.setContentType(contentType); response.setHeader("Content-disposition", "attachment; filename=" + URLEncoder.encode(fileName, "UTF-8"));     response.getOutputStream().write(fileContents); }catch (Exception e){ }finally{ response.getOutputStream().close(); } return null; 以上宜しくお願いいたします。

    • ベストアンサー
    • Java
  • CSVダウンロードでウィンドウが出たままに

     親画面から子画面を表示させ、その子画面から、CSVダウンロードをさせることをやろうとしています。 下記のようなASPを子画面から呼んだところ、ダウンロードには成功しましたが、windowsXPではダウンロードのASPは閉じてくれるのですが、windows2000ではダウンロードのASPは表示されたまま(空白のウィンドウ)になってしまいました。 子画面ではJavaScriptでwindow.open("DL.asp","XXXX") とやっています。 -DL.asp-------------------------- Response.AddHeader "Content-Disposition", "attachment; filename=XXXX.csv" Response.ContentType = "application/octet-stream-dummy" Response.write "xxxx" Response.End --------------------------------- できれば、ダウンロード終了後には空白のウィンドウがでないようにしたいのですが、どうにかできないでしょうか。。。 どうにか対処できないでしょうか・・・

  • CSVファイルのダウンロードができたりできなかったり・・

    ASPで、サーバー側で動的に作成したCSVファイルをクライアント側にダウンロードさせたいと思っていますが、 ダウンロードできるときとできないときがあり困っています。 「ファイルのダウンロード」ダイアログが表示され、うまくダウンロードできるときと、 「Internet Explorer では、[サイト名]-[aspファイル名]をダウンロードできません。このインターネットのサイトを開くことができませんでした。要求されたサイトがしようできないか、見つけることができません。後でやり直してください。」のメッセージが表示され、ダウンロードできない場合があります。 どちらもサーバー上にダウンロードすべきCSVファイルは作成されているので、ダウンロード部分に問題があると思うのですが、原因がわかりません。 ひとつ気づいたのが、csvファイルの容量が4.0MBを超えるとダウンロードできないような気がするのですが、関係ありますでしょうか? よろしくお願い致します。 --------出力のためのスクリプト----------------- Response.ContentType = "application/octet-stream" Response.AddHeader "Content-Disposition", "attachment; filename = " & CSVファイル名 Set fs = Server.CreateObject("Scripting.FileSystemObject") CSV_DATA = Server.MapPath(CSVファイル名) If fs.FileExists(CSV_DATA) Then Set ts = fs.OpenTextFile(CSV_DATA, 1) Do Until ts.AtEndOfStream Response.Write ts.ReadLine() & vbCrLf Loop ts.Close End If Response.End -----------------------------------------------

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

    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
  • CSVファイルのダウンロード時に、パラメータ(Getメソッドで渡される

    CSVファイルのダウンロード時に、パラメータ(Getメソッドで渡される CGI引数(QUERY_STRING環境変数の中身))を、 Javaサーブレット(doGetメソッド内)内で、以下のようにして   ↓ final ResultSetMetaData meta = rs.getMetaData(); response.setContentType("application/octet-stream;charset=utf-16le"); final StringBuffer sbUrl = new StringBuffer(); sbUrl.append("KYOIKU.csv"); sbUrl.append("?").append("20101029162359"); response.setHeader("Content-Disposition", "attachment; filename=" + sbUrl.toString()); out = response.getWriter(); として実行してみたところ、 半角の?(クエスチョンマーク)が、 半角の_(アンダーバー)に変換されて、 テキストファイルとして出力されています。 (KYOIKU.csv_20101029162359) イメージとしては、doGetメソッドからのCSVファイルダウンロード時に、 URLとして、 「http://hogehoge.co.jp/KYOIKU.csv?20101029162359」 として、セット後に実行したいと思っております。 そこでご質問内容なのですが、 ネットで調べていて、先程たまたま、 「URLの末尾にユニークな捨て文字を付加するという手法」として、 「ダウンロードするファイルを、キャッシュにあるファイルとは別物だとIE  に思わせれば、結果的に目的を果たせます。    ↓  (目的とは、CSVファイルのダウンロード時に直接[開く]を押下した場合に、   余計な→[1]文字列が自動的にExcelファイル名として追加されなくなること)」 という記事をたまたま見つけました。 それを試す為に、 「URLの?文字、およびそれ以降の文字列」を、 どのようにすれば、セットできるのか? その方法を教えてください。 お世話になります。 宜しくお願い致します。

    • ベストアンサー
    • Java