• ベストアンサー

ASPでダウンロード方法教えてください

ASPにて、CSVやエクセルなどをダウンロードさせるにはどうすればよろしいでしょうか? ボタンなどがクリックされたらダウンロードダイアログが表示されてダウンロードできるようにしたいのですが・・・。 どなたかご教授ください。 お願い致します。

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

  • ベストアンサー
回答No.4

クライアント側で設定が必要だと思います。 下記手順の設定を試してみてください。 1、コントロールパネルの「フォルダオプション」を開いてください。 2、ファイルの種類タブを選択 3、登録されているファイルの種類からXLSを選び、詳細設定ボタンを押す 4、「ダウンロード後に開く確認をする」にチェックを入れる

msak777
質問者

お礼

回答ありがとうございます。 手順通りに設定したらできました! ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.3

IEであればContent-Dispositionヘッダをつけるとダイアログを表示する様にできます(あくまでブラウザ側の実装に依るので確実ではありません)。

全文を見る
すると、全ての回答が全文表示されます。
noname#245936
noname#245936
回答No.2

No.1です。 単純にブラウザの設定が悪いんと違いますかね? インターネットのセキュリティ設定あたりに、 「DL時にダイアログを表示」なんてあったような気がします。 多分以前に同一ファイル形式のファイルをDLしたときに 「今後ダイアログを表示しない」にチェックを入れたりすると 設定が変わっているかもしれませんね。 試しに、*.lzhなど別ファイル形式で試してみると判りやすい かもしれません。 感覚で言いますと。 Webサーバ、HTTPプロトコルてのはですね。 基本的にユーザにダウンロードさせることが中心のプロトコルで。 サーバは「データの発行」以外何もしてません。 こういうフロントの振る舞いはクライアント側の問題。 htmlやasp、phpという拡張子ならブラウザでそのまま表示。 それ以外はブラウザの設定次第でダイアログを表示、ないし ブラウザ埋め込みで展開…云々という動作をしますが、 全部クライアントソフトの設定次第になります。 ですので。 意図的にクライアントソフトにそういう振る舞い動作を させたい場合はHTMLのヘッダテキストにちょちょいと書けば 任意な動きをさせられると思います。 詳しく覚えてないのですが。 以前に、Webサーバ上でCSVファイルをこさえ、それをExcelで 無理やり表示をさせる!というプログラムを書いたとき。 確か、HTMLヘッダに<Contents Type=何ナニ> みたいな事を 書けばCSVファイルを直接ダウンロードさせず、Excelで表示 できたような気がします。 多分、HTMLレベルでダウンロードへのリンクの定義か、HTMLヘッダ 宣言あたりで何か書き加えると、そのページの表示時の挙動を 意図的に操作できたと思います。 ASPやPHPなど、サーバサイド処理スクリプトは多分全然関係 ありません。

msak777
質問者

お礼

確かにブラウザのセキュリティ設定でダイアログ表示が無効になってたので有効にしたのですが、同じ現象が起きました・・。 (「ファイルを転送しています」とか出てファイルが開く) ただし、.lzhなどはダイアログが表示されダウンロードできました。 丁寧なご説明ありがとうございます。 とても勉強になりました。

全文を見る
すると、全ての回答が全文表示されます。
noname#245936
noname#245936
回答No.1

う…。 ごく単純にリンク貼ればしまいのような気が。 試しにIIS上にExcelファイルをUPして、そのURLを叩いて みてください。 DLできません?

msak777
質問者

補足

早速の回答ありがとうございます。 エクセルファイルが開かれるだけで、ダイアログが表示されないのですがどうすればよろしいのでしょうか? 気が向いたらご教授ください。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • CSVファイルダウンロードダイアログのキャンセルイベント取得方法

    こんにちは。 色々調べてみましたが、なぜかどこにも答えが見つかりませんでしたのでご教授よろしくお願いします。 ASPでCSVファイルをダウンロードする際、 Response.AddHeader "Content-Disposition","attachment; filename=AAA.csv;" としてダウンロードダイアログを出力しています。 このダイアログで、キャンセルボタンのクリックイベントと取りたいのですが、どのようにするのでしょうか? キャンセルした場合、以降に続くサーバサイドの処理をスキップさせたいのですが… よろしくお願いします!

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

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

  • [ASP]CSVダウンロード時に、直接開いた場合のシート名

    お世話になります。 ASPからcsvファイルを動的に生成して(サーバには保存しないで)ダウンロードを実行するという方法は実現できています。 しかし、ダウンロードダイアログが表示された際に、「開く、保存、キャンセル」の中から「開く」を選択すると、Excelが起動しcsvファイルを読み込むのですが、 シート名が「 .csv]ファイル名[1] 」となってしまいます。(余計な文字がくっついてきます。) この余計な文字がシート名に含まれないようにしたいのですが、何かよい方法はないでしょうか。 よろしくお願いいたします。 ◆環境 サーバ:windows2003server クライアント:windowsXP SP2        EXCEL2000         ◆csv生成時の設定 ContentType = "application/x-csv" AddHeader "Content-Disposition" ,  " attachment; filename = AAA20060928.csv"

  • ファイルダウンロードの開くで、CSVファイルが開けない

    表記の件についてかなり困っています。 教えてください。 【環境】  Windows2000 SP4 + ASP 【内容】  現在CSVファイルをダウンロードする仕組みをASPで作成しています。 とりあえず、ダウンロードダイアログがでてくるところまではでき、保存ボタンでも正常に保存できるところまではできたのですが、開くボタンをクリックすると、EXCEL(CSVをEXCELに関連付けしているため)が起動された後に、 ”出力ファイル名[1].csv”が見つかりません。という エラーとなり表示されません。 この原因は何なのでしょうか? 宜しくお願いします。 【ロジック】 ダウンロードロジックは以下のようにしています。 Response.ContentType = "application/octet-stream" Response.AddHeader "content-disposition","attachment; filename=光彩.csv" strFilePath = "C:\Inetpub\wwwroot\CoreSt\光彩.csv" Set objStream = Server.CreateObject("ADODB.Stream") objStream.Open objStream.Type = adTypeBinary objStream.LoadFromFile strFilePath Response.BinaryWrite objStream.Read objStream.Close Set objStream = Nothing

  • ASP.NET 2.0で悩んでます。

    ASP.NET 2.0で悩んでます。 やりたいことは、 1:Excelファイルのダウンロード 2:以前に出力した場合は再度出力するかの確認ダイアログの表示(ScriptManager.RegisterStartupScriptで実装) 3:隠しボタン(updatePanel外で記述)をクリック(2の処理で実装) 4:「処理中です…。」ダイアログの表示 (3のボタンをAsyncPostBackTriggerとすることでUpdateProgressで実装) 5:Excelファイルの作成 6:iframeに処理を投げる(?)(ScriptManager.RegisterStartupScriptで実装) 7:iframeでダウンロード処理。 の7つです。 実際には5までの処理はできたのですが、5の処理で以下の6の処理を記述して7を実行したいのですが、7のPageLoadに入ってきてくれません。 string script = "$get('dummyframe').src='../DownLoad/DownLoad.aspx';"; ScriptManager.RegisterStartupScript(this, Page.GetType(), "download", script, true); いろいろ試してはみたのですが、原因が4が原因かと思いまたが、調べても動作しない根拠がわかりません。 よろしければ、動作しない理由と対応策をよろしくお願いします。

  • ASPからファイルダウンロード

    Win2k+IISでASPプログラムを組んでいます。 A.aspのページでボタンを押すとA.aspないのDownLoad関数実行してファイルをダウンロードするプログラムです。 一回目はうまくダウンロードできますが,それが終わった後A.asp内のボタンを押してもダウンロードが出来ません。 これはなぜでしょうか。 (1)怪しいと思うところはA.aspページで全て処理しているからかな~と思います。 A.asp function download() Response.AddHeader "Content- Disposition","attachment;filename=aa.csv" Response.ContentType = "application/octet-stream" Response.Write( "AAAAaaa" & "," ) Response.Write( "BBBaaa" & "," ) Response.End() End function

  • CSVダウンロードファイルをEXCELで表示する

    CSVファイルをダウンロードすると、ダイアログボックスが表示され、「開く」「保存」「キャンセル」の3つのボタンが表示されます。 「保存」してからEXCELで開くとカンマで区切られたデータが、各セルに1つづつ入った形で表示されますが、「開く」ボタンを押すと、EXCELが起動して、一番左側のセルに「"XXXX","xxxxx","AAA"」のように表示されます。 保存してから開いたときと同じように「XXXX」「xxxx」「AAA」が各セルに入って表示するにはどのように設定をすればいいのでしょうか。 現在の設定は、エクスプローラの「ツール」>「フォルダオプション」>「ファイルの種類」から、拡張子CSVのときはEXCELで開く設定をしています。 よろしくご教授ください。

  • excelファイルをASPで作る方法

    ASPでホームページを作っています。 クライアントが、ある表を表示するホームページを見るとサーバー側に表示されている表と同じエクセルファイルを 作成させたいです。 そして、そのファイルにアンカー タグを張ったページから、エクセルファイルをダウンロードさせたいのです。 注意)エクセルファイルは、CSVではなく純粋なエクセルファイル(vbsでセル幅を変更できる)です。 どなたか、アドバイスをよろしくお願いします。

  • サーブレットからファイル名を指定してのダウンロード

     サーブレットからファイル名(csv)を指定してダウンロード する機能を開発しております。 操作の流れ  (1)HTMLでsubmitボタン押下→ダウンロードを問い合わせる   ダイアログ表示  (2)「このファイルをディスクに保存する」を選択し[OK]を押す  (3)「ファイルの保存」ダイアログで保存  (4)「ダウンロードの完了」ダイアログが表示される→[ファイル   を開く]を押すとexcelが起動しダウンロードしたcsvが表示   される。 しかし、(1)でダウンロードするよう促されるのがCSVではなく HTMLから呼び出したサーブレットなのです。  一応(2)~(4)の操作でcsvをダウンロードできますが、なぜか ブラウザ上でマウスポインタが作業中の状態(矢印と砂時計)の まま変りません。  次に、(1)で「このファイルを上記の場所から開く」を選択し 試しました。すると、同じダイアログでcsv(MASTER_*_*.csv) をダウンロードするよう促されます。 今度は(2)~(4)でダウンロードでき、上で起こったような現象 も起こりません(通常時のマウスポインタ)。  最初からcsv(MASTER_*_*.csv)をダウンロードするダイアログを 表示したいです。  そこで、最初のダイアログが表示されないよう設定したいと思い ますが、[この種類のファイルであれば常に警告する] チェックのON/OFF を切り替えられせん。   サーブレットの一部です。 res.setContentType("text/plain; charset=iso-2022-jp"); res.setHeader("Content-Disposition","attachment; filename=MASTER_" +  groupInp + "_" + factoryCode + "_" + date +".csv"); また、上記の"attachment; を"inline;に変えると、ブラウザの中にexcel が起動されてしまいます。 最初のダイアログの表示をサーブレットによって制御することは可能 でしょうか?ご存知の方いらっしゃればご教示いただきたく。 よろしくお願い致します。

    • ベストアンサー
    • Java
  • IE6.0でCSVダウンロードができない

    いつも拝見しています。 今回はIE6.0で起こっている現象について困っている 事があります。 それは、IE6.0にてJavascriptのlocationを使用して作 成しているCSVファイルをダウンロードさせる様に開発 しているのですが、ファイルの保存ダイアログが表示さ れずに、CSVファイルがそのままブラウザで表示されて しまいます。(ネスケではダイアログが表示されます。 ) そのため、前画面の情報が消えてしまって大変困ってお ります。IEでもファイルの保存ダイアログが表示される 様にするにはどのようにしたらよいのでしょうか? 恐れ入りますがどなたかご存じの方がいらっしゃいまし たらご教授頂きたく存じます。 開発環境 サーバ:Windows2000Server IIS5.0 言語 :ASP ブラウザ:IE6.0、5.5SP2、NC4.78、NS7.1対象