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
以上、宜しくお願い致します。
No.4ベストアンサー
- 回答日時:
#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>
外部公開しているサーバでしたら、ダウンロード後は削除するようなロジックを入れる方がセキュリティ的に○ですね。
No.3
- 回答日時:
#2です。
補足ありがとうございました。
私の方が難しく考えすぎたのかも^^;
質問の通りだったのですね。
ダウンロードさせる際は、サーバにファイル出力後に、
サーバ保存したファイルを自動的にダウンロードさせる、ということでしょうか。
リンクをクリックしてもらう、という手法ではないんですよね?
サーバに保存したものを自動的にダウンロード~というやり方は、私の知る限りではないと思います。
頑張ればできますが、、、
1)WriteLineでサーバ保存
2)ReadLine等で(1)のファイルを開いて読み込み、octet-streamで出力してクライアントにダウンロードさせる。
このような格好悪い方法でしたら、可能ですが、、、
(#1さんのやり方と同じになります。)
CSVの話は、対象となるクライアントによって動きが変わってきます。
業務端末のような環境が絞られているクライアントならいいのですが、
どんな環境でも動くようにCSVをダウンロードする、というのはおそらく不可能でしょう。
同じOSでも、Officeのバージョンによって動きが変わったりもします。
拡張子を変更してdat等にすると、問題なくダウンロードさせることが可能だったりします。
この回答への補足
御回答有難う御座いました。
本当のところは、サーバにファイル出力後に、サーバ保存したファイルを自動的にダウンロードさせる事が出来れば最高なのですが、非常に難しいという事ですので、回答の中にも記載して頂いているリンクをクリックしてもらう方法で作成したいと考えております。
行いたい内容として、
1.あるボタンをクリックすると、サーバ側のあるフォルダに、CSVファイルを作成します。(仮にこれをA.CSVとします。)
2.次に画面が変わって、A.CSVファイルのリンクボタンが表示されるようにする。
3.最後にエンドユーザにてそのリンクボタンをクリックしてもらい、所望のフォルダにA.CSVファイルを保存してもらう。
その中で、リンクというと<A HREF~が思いつくのですが、サーバ保存したファイル名をどのようにして見つければ良いのかわかりません。
申し訳ありませんがご教授の程宜しくお願い致します。
No.2
- 回答日時:
こんにちは。
CSVには散々悩まされている開発者です(苦笑
拡張子がCSVのファイルをダウンロードさせるのは、やっかいですよ^^;
> おっしゃる通り行ってみましたが、ダウンロードさせたCSVファイルを確認すると、
> リンクのようになってしまってカンマ区切りにならなくなってしまいました。
これじゃ、ちょっと障害の状況がつかめないのですが。。。
どちらにしろ、#1さんのやり方はサーバに保存しない方法ですので。。。
あなたの質問は、質問の意図がよくわかりません^^;
具体的にどういう障害が出ているのでしょうか。
あなたが質問したいことは、何ですか?
【ダウンロードさせるにはどうしたらいいでしょうか?】
だけですと、わかりません。。。
・ファイルをサーバ上に保存できないんですか?
・クライアントで保存できないんですか?
・クライアントでファイルのリンクをクリックすると、勝手に開いてしまうのですか?
あなたの書いたソースを使えば、おそらくサーバ上に保存するところまではできると思いますが、、、
以上、補足要求でした。
この回答への補足
すみません。説明不足で申し訳ありません。以後気をつけます。
早速ですが、補足させて頂きます。行いたい事は、下記の通りです。
1.あるボタンをクリックすると、サーバ側のあるフォルダに、CSVファイルを作成します。(仮にこれをA.CSVとします。)
2.さらに、サーバ側で作成されたA.CSVファイルを、クライアント側にダウンロードという形で、CSVファイルを保存します。
1.については、おっしゃる通りサーバ上に保存は出来ていますが、2.においては、全く解らない状態で行き詰まっています。
実際のところ全く解っておらず、思考錯誤している状況にあります。
以上、宜しくお願い致します。
No.1
- 回答日時:
「サーバのローカル上に保存された」と書かれてあるが、実際これはASP内で動的に作成して保存しているのでは? もし可能ならば、サーバのローカル上にいったん保存せずに、作成したCSVデータを直接クライアントに送りつけてはどうだろうか。
いかに簡単なサンプルを示す。' クライアントに対するレスポンスをHTMLではなく汎用オクテットストリームとして返す
Response.ContentType="application/octet-stream"
' ダウンロードさせるファイル名を指定
Response.AddHeader "Content-Disposition","attachment; filename=" & rizu_id2 & ".csv"
' CSVの内容は普通にResponse.Writeで。つまり、君が書いたサンプルと比べると、ファイルに対して書き込むか、HTTPレスポンスに対して書き込むかの違いとなる。ストリームの概念考えた人にはノーベル賞やね。
Response.Write (CSVの内容~~~~)
' 終了
Response.End
もしそれでもいったんサーバに保存させたければ、書き込みを同時に行っても良いだろうし、CSVを作るスクリプト(君が作ったやつ)とそのCSVを読み込んでダウンロードさせるスクリプト(サンプルを参考にCSVを読み込んでオクテットストリームとして返してあげるのを作ってね)を用意すれば良いだろう。
この回答への補足
早速の御回答有難う御座いました。おっしゃる通り行ってみましたが、ダウンロードさせたCSVファイルを確認すると、リンクのようになってしまってカンマ区切りにならなくなってしまいました。
又、サーバとクライアント両方にCSVファイルが必要の為、動的に作成したCSVファイルをクライアントにダウンロードする必要があります。ご指摘のCSVを作ったスクリプトの後にそのCSVを読み込んでオクテットストリームとして返す方法がわかりません。
何卒、ご教授宜しくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
ロボットの住む世界で流行ってる罰ゲームとは?
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
ASPでCSVファイルを作成しダウンロードさせる
Microsoft ASP
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
java_run.batがダウンロードで...
-
PS4で、「バージョン5.05以上の...
-
Webサイトから、txtファイルを...
-
HTMLページが勝手にダウンロー...
-
XMLファイルのダウンロード
-
HPにPDFデータを載せるの...
-
PDFファイルをダウンロード...
-
Dreamweaver cs5リンク作成につ...
-
javascriptでファイルダウンロ...
-
教えてください!
-
複数のデータをダウンロードさ...
-
アップロードしたMP3のダウ...
-
docomoの構成プロファイルはど...
-
iPadの標準ブラウザでローカルH...
-
HTMLからフォルダを開きたい
-
googleドライブで、PDFファイル...
-
マウスポインタが手の形になら...
-
医療画像(Windows用)をMacで...
-
社内で利用するWebサイトを立ち...
-
HTMLの内容をテキストエリアに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
HTMLページが勝手にダウンロー...
-
Webサイトから、txtファイルを...
-
VBA URLDownloadToFileについて
-
java_run.batがダウンロードで...
-
【HTML】1クリックで複数ファイ...
-
URLDownloadToFile でダウンロ...
-
ファイルをダウンロードすると...
-
XMLファイルのダウンロード
-
エクセルのファイルのダウンロ...
-
VBA IE操作でダイアログ表示後...
-
エアーマンが倒せないのtab譜
-
WEB上でPDF閲覧のみにしたいです。
-
IE操作時、ファイルのダウンロ...
-
ASPでPDFファイルのサム...
-
会員制ホームページの作り方。
-
bcpadのコンパイラのインストー...
-
asp ダウンロード中にタイムア...
-
メールの直リンクがダウンロー...
-
ダウンロードしたファイルが「...
-
イラストレーターのaiファイル...
おすすめ情報