• 締切済み

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 -----------------------------------------------

みんなの回答

  • akkun2k
  • ベストアンサー率71% (5/7)
回答No.2

Const adTypeBinary = 1 Response.AddHeader "Content-Type","text/plain" Response.AddHeader "Content-Disposition","attachment; filename=" & CSVファイル名 Set objStream = Server.CreateObject("ADODB.Stream") objStream.Open objStream.Type = adTypeBinary objStream.LoadFromFile strFilePath Response.BinaryWrite objStream.Read objStream.Close Set objStream = Nothing ではどうでしょうか。バイナリ扱いしています。 Response.ContentType = "application/octet-stream" でもいいかもしれません。 "Content-Disposition"を「inline」にすると、ブラウザに直接表示に、 「attachment」にすると、開くか保存するかダイアログ表示になるのが イメージかと思います(ブラウザにより挙動は異なります)。 処理対象のファイルの拡張子がWindowsで登録されている場合、 ブラウザが直接表示したがります。 CSVの場合、Excelがインストールされているマシンとそうでないマシンでも挙動が異なります。

  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

自信ないのですがヘッダーのContent-Dispositionのattachmentをinlineにしてみたらどうでしょう。

pyonpyoi
質問者

お礼

変更してみましたが、変わりありませんでした。 ありがとうございました。

関連するQ&A