OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

ASPでCSVファイルを作成しダウンロードさせる

  • 困ってます
  • 質問No.114813
  • 閲覧数11633
  • ありがとう数11
  • 気になる数0
  • 回答数5
  • コメント数0

お礼率 51% (32/62)

ASPファイルで、動的にCSVファイルを作成し、クライアントにダウンロードさせたいのですが、実際には、ファイルは作成せずに、ASPで直接、CSVフォーマットのファイルをダウンロードさせているように振舞わせることはできないでしょうか?

手順
クライアント        サーバー
あるURL(A.ASP)にアクセス
             A.ASPのスクリプトでCSVフォーマットを作成
             クライアントに送信(多分、Response.Writeで)
ダウンロードダイアログが開く
「A.CSVをダウンロードしますか?」
のような感じ
ダウンロード、またはExcelが開く

というようなイメージです。
CSVファイルを作ってしまうと、複数のユーザーからほぼ同時に要求があった場合、望むCSVにならない可能性があり、また、毎回ファイル名を変えると、Webサーバー上にCSVファイルが沢山できてしまうため、何とかこの方法でやりたいのですが、何かよい方法はありませんでしょうか?

ちなみに次のようなASPファイルをしてみましたが、うまくいきません。

<%
Response.Content-Type="application/vnd.ms-excel"
Response.Write "1,2" & vbNewLine
Response.Write "3,4" & vbNewLine
%>
また、「vnd.ms-excel」を「oct-stream」でもだめでした。
何かよい知恵をお貸しください。
通報する
  • 回答数5
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.2
レベル9

ベストアンサー率 40% (43/105)

これでOK!です。

<%
Response.AddHeader "Content-disposition", "filename=""motteke.csv"""
Response.ContentType="text/csv"
Response.Write "1,2" & vbNewLine
Response.Write "3,4" & vbNewLine
%>

"text/csv"は適当です(笑)
お礼コメント
msystem

お礼率 51% (32/62)

ありがとうございます。
できました。
私も、「Content-disposition」は使ってみたのですが、つづりが違っててできませんでした。(^_^;)

ところで、
Content-disposition; attachment;filename=motteke.csv
という書き方もあるようですが、「attachment」はどうゆう物なのでしょうか?
あるのとないのと、何か違いがあるのでしょうか?
投稿日時 - 2001-08-07 17:05:49
-PR-
-PR-

その他の回答 (全4件)

  • 回答No.1
レベル14

ベストアンサー率 50% (1122/2211)

こんな感じのASP にするのではどうなのでしょう? <html> <head> <meta HTTP-EQUIV="Content-type" CONTENT="application/vnd.ms-excel"> </head> <body> <%  Response.Write ...続きを読む
こんな感じのASP にするのではどうなのでしょう?

<html>
<head>
<meta HTTP-EQUIV="Content-type" CONTENT="application/vnd.ms-excel">
</head>
<body>
<%
 Response.Write "1,2" & vbNewLine
 ...
%>
</body>
</html>

# 私は計算機屋ですが、ASP は触ったことが無いのではずしているかもしれません。
お礼コメント
msystem

お礼率 51% (32/62)

私もはじめそのような形でしてみました。
が、よく考えれば「<html></html>」の部分ですでにだめなのでは・・・
実際、だめでした。

ですが、早速のお答えありがとうございます。
また、何か在ればよろしくお願いします。
投稿日時 - 2001-08-07 17:01:13


  • 回答No.3
レベル9

ベストアンサー率 46% (29/62)

以下でいけます Response.ContentType = "text/plain" Response.AddHeader "Content-Disposition", "attachment;filename=xxxxxx.csv" sendtext = "'aaa','bbb'&q ...続きを読む
以下でいけます

Response.ContentType = "text/plain"
Response.AddHeader "Content-Disposition", "attachment;filename=xxxxxx.csv"
sendtext = "'aaa','bbb'"
Response.Write sendtext
Response.End
お礼コメント
msystem

お礼率 51% (32/62)

ありがとうございます。
できました。
私も、「Content-disposition」は使ってみたのですが、つづりが違っててできませんでした。(^_^;)

ところで、
Content-disposition; attachment;filename=xxxx.csv
という書き方もあるようですが、「attachment」はどうゆう物なのでしょうか?
あるのとないのと、何か違いがあるのでしょうか?
それと、「ContentType」は、やはり「text/plain」が一番いいでしょうか?
ContentType自身は、昔は自由に決めることができた(今も?)と聞いたことがあるので難しいですが、どこかに参考になるような資料はないでしょうか?
投稿日時 - 2001-08-07 17:09:24
  • 回答No.4
レベル9

ベストアンサー率 40% (43/105)

ContentTypeに"text/csv"と適当ものを指定してることには理由があります。 IEなんかですと、ContentTypeをまともに見ないのでいいんですが、 Netscapeですと"text/plain"というまともなMIMEを指定すると、 ダウンロードのダイアログが出ず、ブラウザで表示してしまいます。 (IE5.5のSPなしでもバグがあったような ...続きを読む
ContentTypeに"text/csv"と適当ものを指定してることには理由があります。
IEなんかですと、ContentTypeをまともに見ないのでいいんですが、
Netscapeですと"text/plain"というまともなMIMEを指定すると、
ダウンロードのダイアログが出ず、ブラウザで表示してしまいます。
(IE5.5のSPなしでもバグがあったような)

Content-dispositionの"attachment"はその名の通り添付を意味します。
その他には"inline"があります。

今回の場合はどちらでもなさそうなので省略して
絶対にダウンロードになってほしいなという私の願いがこめられています。
(ファイル名さえ認識してくれればよい)
美しいやり方ではないですね。
お礼コメント
msystem

お礼率 51% (32/62)

ご回答ありがとうございます。
確かに、ContentTypeは使い方が難しいですね。
特にIEは、ContentTypeにほとんど関係がないというところは、プラットフォームに依存しないシステムを作る際には、大きな障害になりますね。

大変参考になりました。ありがとうございました。
投稿日時 - 2001-08-08 08:10:14
  • 回答No.5
レベル9

ベストアンサー率 46% (29/62)

ContentType,attachmentに関してはmkiiさんが解説しているので割愛します。 IEのBugはBinary Dataの時に発生するようですね。(5.5では出ないかも.....) ContentTypeを以下のようにすれば回避できます。 Response.ContentType = "application/octet-stream-dummy; name=file1. ...続きを読む
ContentType,attachmentに関してはmkiiさんが解説しているので割愛します。

IEのBugはBinary Dataの時に発生するようですね。(5.5では出ないかも.....)
ContentTypeを以下のようにすれば回避できます。
Response.ContentType = "application/octet-stream-dummy; name=file1.exe"

IE以外の場合は
Response.ContentType = "application/octet-stream; name=file1.exe"
お礼コメント
msystem

お礼率 51% (32/62)

IEのBugは、バイナリデータの時ですか。参考になります。
今は、まだ、バイナリデータのダウンロードは必要がないですが、将来のときのためにきっちり覚えておくようにします。

本当にありがとうございました。
投稿日時 - 2001-08-09 08:06:11
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ