asp.net でのcsvでのデータ出力をVBを使って、streamwriterを使って行いたいと思っています。データ出力は、クライエント側のPCのデスクトップ上に行いたいです。

環境は、windows7 proです。
具体的には、
1.ファイルパスの設定はどう記述するのか、
2.具体的コード例です。
よろしくお願いします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2013/12/04 13:30:33
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:language_and_engineering No.1

回答回数170ベストアンサー獲得回数63

そのようなWebページを,www上に作成して公開しました。
利用したActiveXオブジェクトはFileSystemObjectで,ASPではなく単一のHTMLファイルだけで実現していますが。


IEでアクセスすると,ローカルファイルシステムに書き込むサンプル
http://name-of-this-site.org/coding/ie_activex/CreateFileInLocalFileSystemSample.html


IE以外のブラウザでアクセスしても,何も起こりません。
また,IEでアクセスしても,このページに記載されている手順でセキュリティレベルを下げない限り,何も起こりません。


ページ上に記載されている手順を実行した場合に限り,
アクセスしたクライアントのPCのローカル・ファイルシステム上に,テキストファイルが生成されます。(C:\hoge.txt)


このテキストファイルの中には,固定文字列が書き込まれます。
もしクライアントのPC内にCSVファイルを生成したい場合は,
固定文字列の代わりに,カンマ区切りの文字列を格納し,書き込み先のファイル名の拡張子も.csvにします。
ファイルの内容は,固定文字列ではなく,ASP.NETによって動的に内容を決定する事ができるはずです。


コメント欄の下記のコメントを実現したものです。

>直接出力は無理があります。webサイトにアクセスしたら
>クライアントのファイルシステムに自由に書き込みされるって
>ウイルス的挙動は怖いと思いませんか?
>(限定環境のイントラならできないことはありませんが間に1段要ります)

それで,質問者様の場合はイントラ内での実装になるとは思いますが,セキュリティ面でご注意なさってください。

  • id:degucho
    直接出力は無理があります。webサイトにアクセスしたら
    クライアントのファイルシステムに自由に書き込みされるって
    ウイルス的挙動は怖いと思いませんか?
    (限定環境のイントラならできないことはありませんが間に1段要ります)
    csvをダウンロードさせるならashxやContentResult(MVCの場合)でできます。
  • id:doradoratan
    現在のファイルの場所から物理パスを取得して、一旦サーバー側へファイルを保存、そのファイルをクライアントに送信(メール等)する方法はいかがでしょうか。
    パスの取得はこちらのサイトを参考にされると良いでしょう。
    http://www.atmarkit.co.jp/fdotnet/dotnettips/804asprootpath/asprootpath.html


  • id:kojiro_i619
    csvファイルをクライエント側のデスクトップ上に出力するstreamwriterを使ったコードです。できると思いますが。ウイルス的挙動は、ウイルスブロックを解除した条件上なら、関係ないと思います。具体的な回答をください。
  • id:language_and_engineering
    「WebページにアクセスしたらCSVをダウンロードできる。ダウンロード先はクライアントがデスクトップを選ぶ。」
    では,だめなんですね?


    ----そういうサンプルコード:

    ASP.NETでCSV出力 - Kobarin’s Working Memo
    http://d.hatena.ne.jp/fskkoba/20101028/1288244858


    c# - ASP.Net - Dynamic CSV File Download - Stack Overflow
    http://stackoverflow.com/questions/8608446/asp-net-dynamic-csv-file-download


    ASP.NET MVC3でCSVファイルをダウンロードするbeaglesoft.net | beaglesoft.net
    http://blog.beaglesoft.net/wordpress/2012/03/aspnet-mvc3csv/

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません