- 締切済み
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 -----------------------------------------------
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- akkun2k
- ベストアンサー率71% (5/7)
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)
自信ないのですがヘッダーのContent-Dispositionのattachmentをinlineにしてみたらどうでしょう。
お礼
変更してみましたが、変わりありませんでした。 ありがとうございました。