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」でもだめでした。
何かよい知恵をお貸しください。

このQ&Aに関連する最新のQ&A

A 回答 (5件)

これでOK!です。



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

"text/csv"は適当です(笑)
    • good
    • 1
この回答へのお礼

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

ところで、
Content-disposition; attachment;filename=motteke.csv
という書き方もあるようですが、「attachment」はどうゆう物なのでしょうか?
あるのとないのと、何か違いがあるのでしょうか?

お礼日時:2001/08/07 17:05

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"
    • good
    • 0
この回答へのお礼

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

本当にありがとうございました。

お礼日時:2001/08/09 08:06

ContentTypeに"text/csv"と適当ものを指定してることには理由があります。


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

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

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

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

大変参考になりました。ありがとうございました。

お礼日時:2001/08/08 08:10

以下でいけます



Response.ContentType = "text/plain"
Response.AddHeader "Content-Disposition", "attachment;filename=xxxxxx.csv"
sendtext = "'aaa','bbb'"
Response.Write sendtext
Response.End
    • good
    • 0
この回答へのお礼

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

ところで、
Content-disposition; attachment;filename=xxxx.csv
という書き方もあるようですが、「attachment」はどうゆう物なのでしょうか?
あるのとないのと、何か違いがあるのでしょうか?
それと、「ContentType」は、やはり「text/plain」が一番いいでしょうか?
ContentType自身は、昔は自由に決めることができた(今も?)と聞いたことがあるので難しいですが、どこかに参考になるような資料はないでしょうか?

お礼日時:2001/08/07 17:09

こんな感じのASP にするのではどうなのでしょう?



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

# 私は計算機屋ですが、ASP は触ったことが無いのではずしているかもしれません。
    • good
    • 0
この回答へのお礼

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

ですが、早速のお答えありがとうございます。
また、何か在ればよろしくお願いします。

お礼日時:2001/08/07 17:01

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qダウンロード支援フリーソフトについて

ダウンロード支援フリーソフトについて
色々なダウンロード支援フリーソフトを試しましたが私の設定が良くないのか私の思うようにダウンロード出来ません、おすすめのダウンロード支援フリーソフト・設定を教えてください。

用途としてはインターネットのページ上でサムネイル化されている画像を大きいサイズで保存したいのです、上記のとおり一通りフリーソフトを試しましたがサムネイルサイズの小さい画像しか保存できず困っています。

フリーソフト等を使ってサムネイル化された画像を元々のサイズで保存する方法はないのでしょうか?出来るのなら出来るフリーソフト・設定を教えて下さい。

質問内容が分かりにくく大変申し訳ありません。

Aベストアンサー

そのサムネイルは大きい画像へのリンクになっていますか?

小さいサムネイル画像しか持たない(リンクしていない)画像だったらどんなソフトを使っても小さな画像しか得られませんので

http://www.flashget.com/index_jp.htm

QASP Response.Write("401 Unauthorized")での構文記述方法

ASPで「401 Unauthorized」系のダイアログからの認証処理を作成しています。

サイトでのサンプルを見ているのですが、理解に苦しみます。

Response.Write("401 Unauthorized")
上記の記述で、ダイアログを表示することは分かったのですが、ダイアログの、「ユーザー名」・「パスワード」の値を取得するにはどのように記述すればよいのでしょうか?

ASPは全くの不慣れなので、この他にも質問を投稿しております、ASPなら・・・というお方がおりましたら合わせてご教授お願いいたします。

Aベストアンサー

以下のWebページのBasic認証についての解説が参考になるかと。

ただしここらへん、どうやってプログラミングしたらよいか分からない(あるいは面倒だ)と思ったら、素直にIISの認証メカニズムにまかせてしまったほうが良いでしょう

参考URL:http://www.atmarkit.co.jp/fnetwork/rensai/netpro02/netpro01.html

Qフリーソフトをダウンロード,なのに有償版のアイコンがある…

お教えください。

ラスター・ベクター変換で
http://www.softsoft.net/wintopo/dl-wintopo.htm
という英国のWinTopo Freeware 1.7というフリーソフトをダウンロードしました。

ですが,インストールを終えてみるとWinTopo Freeware 1.7のフリーソフトとWinTopo Professionalの有償版のアイコンがうまれているのです。

どこかで間違った手続きをしたのでしょうか?

特に変わったこともなくダウンロードして,インストールをしました。 

そして,サイトがすべて英語なのでわかりづらくて困っています。

フリーソフトのみをダウンロードしたつもりなのにWinTopo Freeware 1.7のフリーソフトとWinTopo Professionalの有償版のアイコンがあることや,間違いダウンロードをしてしまったかもしれないということについて尋ねたくてもどうしてよいかわかりません。

これは請求されるのでしょうか?

もし,ダウンロードミスをしていた場合,これは間違 いダウンロードだとしてダウンロードを返上,撤回す るのはどうすればよいでしょうか?

お教えください。

ラスター・ベクター変換で
http://www.softsoft.net/wintopo/dl-wintopo.htm
という英国のWinTopo Freeware 1.7というフリーソフトをダウンロードしました。

ですが,インストールを終えてみるとWinTopo Freeware 1.7のフリーソフトとWinTopo Professionalの有償版のアイコンがうまれているのです。

どこかで間違った手続きをしたのでしょうか?

特に変わったこともなくダウンロードして,インストールをしました。 

そして,サイトがすべて英語なのでわかりづらくて困ってい...続きを読む

Aベストアンサー

正常です。

私もインストールしたことがありますが、たしかその有償版は期間限定だか機能限定だかの試用版のはずです。
一緒にインストールされる旨どこかに書かれていたと思います。

QASPでCSVファイルのダウンロード

ASPでオラクル上のレコードを書き出したCSVファイルをダウンロードするページを作成しました。
あるフィールドに半角カンマが入ったレコードが存在したため、その行だけ列がずれてしまいました。

そのCSVファイルはAccessで作成したプログラムで取り込みます。インポート定義で、半角カンマをフィールドの区切りに設定してあります。

Accessでの読み込みエラーを回避するために、フィールド中の半角カンマを全角カンマに置換してCSVファイルを作成したいのです。
ASP上で、Replace関数を使用してみましたが、半角カンマが引数の区切りと認識されたり、シングルクオーテーションもコメントとして認識されたりしてうまくいきません。


Response.write Replace(rs("フィールド1"),",",",") & "," & rs("フィールド2") & vbNewLine

※rsはレコードセットです。

どなたか解決方法を知っていらっしゃる方、ご教授願います。

Aベストアンサー

こんにちは。

最初に一言。
CSVで出力するデータに半角カンマが入ってる、っていうのはよくないですね^^;
#1さんがおっしゃる通り、区切り記号を使うのが一般的なやり方です。

今回は、Accessで作成したプログラム(マクロでしょうか?)で取り込むとのこと。
区切り記号を使えるかどうかは、Access側の仕様によりますから、微妙です。

OracleでReplace関数を使ってみたらいかがですか?
(動作確認済です。)


SELECT REPLACE(フィールド1,',',',') , フィールド2
FROM ~
WHERE ~


どうしてもASPに頼ってしまいますが、OracleのSQL関数も意外に使えますので、これからもぜひお試し下さい。

Q「着もと」というフリーソフトのダウンロードサイトが開けなく、ソフトがダ

「着もと」というフリーソフトのダウンロードサイトが開けなく、ソフトがダウンロードできません。
着もとのように着信音設定を可能にするフリーソフトがあれば教えていただけないでしょうか?

Aベストアンサー

http://www.vector.co.jp/soft/dl/winnt/art/se460732.html
ここからどうぞ

QCSVファイルをサーバからクライアントへダウンロードする方法

ASP初心者です。
下記のようにサーバのローカル上に保存されたCSVファイルをクライアントの方にダウンロードさせるにはどうしたらいいでしょうか?
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objText = objFS.CreateTextFile("C:\" & rizu_id2 & ".csv")
objText.WriteLine("リスト種別,親種別,指図番号,枝番,ユーザ名,リスト来歴番号,リスト来歴日付,内容,リスト来歴作成者,リスト来歴承認者,AN-80,DIC547(旧色),日塗工S44-257(安全色),日塗工S44-257(梯子手摺),指定色:本体,安全色,梯子手摺,制御盤外面色,制御盤内面色,リレー板色,艶有り,半艶,親機種コード,親名称,親図面番号,親型式,作成年月,図面リスト作成者,図面リスト承認者,電源電圧,50Hz,60Hz,操作電圧,特記事項")
objText.WriteLine(""& ristsyu & "," & osyu & "," & sashi & "," & edaban & "," & yumei & "," & rirano & "," & riradate & "," & na & "," & ritanto & "," & risyonin &"," & an & "," & dic & "," & nitosa & "," & nitola & "," & mainc & "," & safec & "," & lad & "," & contout & "," & contin & "," & rico & "," & gloss & "," & hgloss & "," & okisyu & "," & oname & "," & ozu_id & "," & okata & "," & yerman & "," & tanto & "," & syo & "," & po & "," & hzg & "," & hzr & "," & op & "," & ct &"")
objText.WriteLine("順序,子図面番号,子サイズ,子分類コード,子種別,子名称,子型式,単数,製作数,子備考,子来歴番号")
objText.WriteLine(""& fla & "," & kzu & "," & ksize & "," & kbu & "," & ksyu & "," & koname & "," & kkata & "," & ksu & "," & sei & "," & kbi &"," & krai & "")
objText.Close

以上、宜しくお願い致します。

ASP初心者です。
下記のようにサーバのローカル上に保存されたCSVファイルをクライアントの方にダウンロードさせるにはどうしたらいいでしょうか?
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objText = objFS.CreateTextFile("C:\" & rizu_id2 & ".csv")
objText.WriteLine("リスト種別,親種別,指図番号,枝番,ユーザ名,リスト来歴番号,リスト来歴日付,内容,リスト来歴作成者,リスト来歴承認者,AN-80,DIC547(旧色),日塗工S44-257(安全色),日塗工S44-257(梯子手摺),指定色:本体,安...続きを読む

Aベストアンサー

#2です、こんにちは。

リンクタグで、拡張子がCSVをダウンロードする場合は、ユーザに左クリックさせないことが重要です^^;
IEの場合は、右クリックして【対象をファイルに保存】して下さい、等書かないと前述した個々のクライアントの環境の問題が出ます。

私が開発した時は「左クリックでCSVをダウンロードできないか。」という要望が顧客から出て、
プログラムでブラウザを判定して、ブラウザごとにロジックを変えて対応しましたが、、、
ブラウザのバージョンが変わるたびに、ブラウザの動きが変わったりするので、メンテナンスが大変ですし、想定外のブラウザでの誤動作も怖いですし。


> その中で、リンクというと<A HREF~が思いつくのですが、
> サーバ保存したファイル名をどのようにして見つければ良いのかわかりません。


保存場所は、もちろんわかるんですよね?
実行ファイル(asp)とCSVファイルが同じフォルダ内でしたら
<a href='a.csv'>ダウンロード</a>

別のフォルダの場合。
例えば、C:\Inetpub\wwwroot\a.aspを実行していて、C:\Inetpub\a.csvをダウンロードする場合は
<a href='../a.csv'>ダウンロード</a>

C:\Inetpub\wwwroot\a.aspを実行していて、C:\Inetpub\wwwroot\data\a.csvをダウンロードする場合は
<a href='data/a.csv'>ダウンロード</a>


外部公開しているサーバでしたら、ダウンロード後は削除するようなロジックを入れる方がセキュリティ的に○ですね。

#2です、こんにちは。

リンクタグで、拡張子がCSVをダウンロードする場合は、ユーザに左クリックさせないことが重要です^^;
IEの場合は、右クリックして【対象をファイルに保存】して下さい、等書かないと前述した個々のクライアントの環境の問題が出ます。

私が開発した時は「左クリックでCSVをダウンロードできないか。」という要望が顧客から出て、
プログラムでブラウザを判定して、ブラウザごとにロジックを変えて対応しましたが、、、
ブラウザのバージョンが変わるたびに、ブラウザの動きが変...続きを読む

Qベクターのフリーソフトがうまくダウンロードできない

ベクターのフリーソフトを手順どうりダウンロードして 解凍ソフトを重ねて
解凍してみると何故か全て、エキサイト壁紙マネジャーの絵になります。
どんな、フリーソフトをダウンロードしても全部 壁紙マネジャーになるのです
なぜでしょうか?教えてください

Aベストアンサー

壁紙マネジャーを終了してから ダウンロードしてみては いかがでしょうか?
そのソフトが 余計なことをしているのかもしれません。

QResponse.Write(変数)

Response.Writeの意味をわかりやすく教えてください!!

Aベストアンサー

「サーバがクライアントにデータを返し、ブラウザに表示する」とかじゃなくて?

Qベクターのあるフリーソフトのダウンロード法

訳があって デザインした文字をTシャツに昇華プリント加工する必要に迫られ しかも「立体文字」を
デザインする必要に迫られ ウェブサイトをさまよってると ベクターのフリーソフト「もこもこ」なるサイトに出会いました。
http://www.vector.co.jp/vpack/browse/pickup/pw5/pw005196.html
フリーソフトと分かって 喜びいさんでダウンロード
しようとして うまくダウンロード出来ません。
ウェブ上の「ダウンロード」の項をクリックしても
うまくダウンロード出来ません。
実は ベクターのフリーソフトをダウンロードした
経験ゼロです。ひょっとして 事前の会員登録制?
なのでしょうか。
どなたか 御教示 お待ちしています。
PS。「ラーサプラス」なる解凍ソフトは
   インストール済みです。

Aベストアンサー

最近「Vアップ通知」なるサービスが開始され、ダウンロードを開始する前に、そのサービスの案内ページが挿入されるようになりました。
このページで「登録するとバージョンアップの連絡…」などの文面があるのでそれで迷われたのでしょうか?
案内ページの下にある「いまは登録しない」ボタンを押すととりあえずダウンロードが開始されますよ。

自分も変更直後に「登録が必要になったのか?」と勘違いし少しハマりました(^^;

Q.NET ASP クライアント側でファイルの保存

.Net でWebのアプリケーションを作成しています。

サーバー側にあるデータを、クライアントにTXTファイルとして提供したいのですが、方法が良く分かりません。

System.IOを使おうとしたのですが、サーバにアクセスする権利がないとエラーになり、作成できません。

サーバ側のファイルにアクセス権をつけたりせず、データだけを、クライアントに渡して、ファイルにしたいのですが、できないのでしょうか?

Aベストアンサー

ダウンロード画面を出すということであれば

参考URL:http://www.ailight.jp/ASPDownload.aspx


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング