- - PR -
コンソールにバイナリデータを送る
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-06-29 11:57
Vb.netでコンソールアプリケーションを開発しています。
テキスト文字列であれば、console.writeなどで出力できるのですが、 バイナリで出力する場合の方法を教えてください。 ファイルから取得(FileGet)したバイナリを出力したいのです。 ヘルプを見るとFileGetで取得したデータはFilePutで出力するとあるので、 試すのですが、ファイルからファイルへの出力はそれでできましたが、 それとコンソールとの関係がわかりません。 よろしくお願いします。 | ||||
|
投稿日時: 2004-06-29 12:09
どのように出力したいですか?
not printableなコードが混ざったバイナリをそのままコンソールに出力(FilePut)したら、どうなるかわかってます?NT系では大丈夫でしょうが、95系でやると、最悪OSが落ちますよ? | ||||
|
投稿日時: 2004-06-29 12:30
回答ありがとうございます。
目的は、ファイルのダウンロードを行う、VB.netによるCGIプログラムを作りたいのです。なので、たとえば、Wordなどのファイルイメージをそのまま、Webにわたしたいのです。 | ||||
|
投稿日時: 2004-06-29 13:15
デバイス'CON:'
しかし…わからん。なぜにVB.NETでCGI?Webアプリケーションという仕組みができているのに…。いや、IISを使いたくない、というのは立派な理由だと思います。そうだとしたら、なぜにVB.NETで?知っている言語だから?もしそういう安直な理由なら、一から見直すべきです。きっとどこかで恐ろしいことが起こる可能性が潜んでいます。 | ||||
|
投稿日時: 2004-06-29 13:31
もちろんasp.netで本体は開発してますが、ファイルのダウンロードで不都合があり、そうしようとしてます。
不都合というのは、IEの場合、ダウンロードするファイル名が長い場合、ファイル名が短くなってしまうからです。もし、こちらの方の解決策があるなら、わざわざCGIにする必要もないのですが、 わかってもらえませんか? | ||||
|
投稿日時: 2004-06-29 14:16
CGIにすると解決するのですか?
クライアントサイドから見てASP.NETとCGIに違いがあるのですかね。 | ||||
|
投稿日時: 2004-06-29 15:10
todoさんとかぶりますか、本当にCGIにしたら解決するのでしょうか?問題の本質はこちら、『長いファイル名をダウンロードさせようとすると、短くなってしまう』ではないでしょうか?『CGIにしたら解決する』ことが確定しているなら元の質問もわかりますが、確定していないならわかりません。なぜそうなるのか、Webアプリのまま解決または回避できないのか、というところを放っておいていいのでしょうか?そこが曖昧なままだと、CGIにしても解決しないと思うのですが、いかがでしょう? つまり、受け取り側に問題があるなら、いくらサーバ側で回避しようとしても回避できない、ということです。HTTPの仕様など、確認しましたか? 例えば、その長いファイル名をサーバのWeb公開ディレクトリに置いて、そのファイルへのアンカーを持ったHTMLを作ります。アンカーをクリックするとダウンロードされるのですが、その時は大丈夫なのでしょうか? wwwroot/longlonglonglonglonglonglonglonglonglonglongverylongfilename.doc wwwroot/index.htm [index.htm] <html> <head><title>long filename test</title></head> <body><a href="./long...filename.doc">long filename</a></body> </html> | ||||
|
投稿日時: 2004-06-29 16:17
longlonglonglonglonglonglonglonglonglonglongverylongfilename.doc
の場合だと、asp.netの場合も大丈夫です。 漢字で20文字を超えるぐらいの長さになるとファイル名の後ろが削られてしまいます。 この問題を解決するために、CGIを考えてます。 そういうファイル名でも間にCGIを入れると解決します。 実際、ファイルの中身は正しくない(今回投稿の問題が解決しないので) ですが、ファイル名の問題はクリアできてます。 |