- PR -

ASPによるEXEファイルダウンロード

1
投稿者投稿内容
para06
会議室デビュー日: 2005/08/10
投稿数: 9
投稿日時: 2005-09-06 21:33
EXEファイル(自己解凍圧縮ファイル)をダウンロードするロジックを作っています。

下記の通り記述しているのですが、ダウンロードした後にそのEXEを実行すると黒いコマンド画面が一瞬起動された後、消えてなにもなかったかのように終ります。タスクマネージャーにも起動されていないことは確認済み。
ということはうまくダウンロードできていないという結果だと思います。
また、元ファイルと、ダウンロード後のファイルのバイト数は少しダウンロード後の方が増えていました。(数バイト)

何が悪いのでしょうか?
宜しくお願いします。

以下ソースは、問題切り分けのため、notepad.exeを起動するようにしています。これでも上記と同じ現象となります。
************START****************
Response.ContentType = "application/octet-stream"
Response.AddHeader "content-disposition","attachment; filename=notepad.exe"
strFilePath = filename '"C:\wwwroot\pep\notepad.exe"
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = adTypeBinary
objStream.LoadFromFile strFilePath
Response.BinaryWrite objStream.Read
objStream.Close
Set objStream = Nothing
Response.end

************ END ****************
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2005-09-07 10:11
引用:

cookie06さんの書き込み (2005-09-06 21:33) より:
元ファイルと、ダウンロード後のファイルのバイト数は少しダウンロード後の方が増えていました。(数バイト)



どこにどのような値が増えていました?
(例えばファイルの最後にFFが3バイト付いていたとか)
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-09-07 10:37
クロスサイトポストリンク。
http://okweb.jp/kotaeru.php3?q=1628748



_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
Moo
大ベテラン
会議室デビュー日: 2004/04/12
投稿数: 118
お住まい・勤務地: 地球・港
投稿日時: 2005-09-07 15:33
Response.BinaryWrite直後にResponse.Flush
をしてみてはどうですか?

あとは、ヘッダにContent-Lengthを追加するとか。

たぶん前者の対応で十分ですが、
コンテンツサイズをブラウザに教えてあげたほうがいいかもしれませんね、

追記:
ファイルの比較のためにFCというコマンドが標準搭載されています。
活用してみてください。


>fc /b サーバのファイル クライアントのファイル
ファイル サーバのファイル と クライアントのファイル を比較しています
FC: 相違点は検出されませんでした


_________________
ASP++ by Moo http://moo-asp.net/
ASP/ASP.NETだいすき。

[ メッセージ編集済み 編集者: Moo 編集日時 2005-09-07 15:36 ]
para06
会議室デビュー日: 2005/08/10
投稿数: 9
投稿日時: 2005-09-07 23:04
多数ありがとうございます。
うまくいきました。

以下で
Response.Flush


ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)