-1

そのため、vb.net を使用して、ユーザーがダウンロードしたいファイルのバイト データをサーバーから取得します。ファイル名と拡張子が何であるかは常に知っていますが、バイトデータのダウンロードを適切なファイル形式で開始する方法はわかりません。どうすればこれを行うことができますか?

編集:明確にするために、私はすでにコードでバイト形式のデータを取得しています。既知の適切なファイルタイプとしてダウンロードする必要があります。ファイルへの URL は常に非表示にして、決して公開されないようにしています。

4

2 に答える 2

2

ファイルをハード ドライブに直接ダウンロードする場合、最も簡単な解決策はWebClient.DownloadFileを使用することです。MSDN ページには、良い例が含まれています。

ファイルをディスク上のファイルではなくバイト配列に配置する場合は、代わりにWebClient.DownloadDataを使用します。

Dim myWebClient As New WebClient()
Dim myByteArray = myWebClient.DownloadData("http://...")

ここでも、MSDN ページに大きな例があります。

ダウンロード中にプログラムの応答性を維持したい場合は、これらのメソッドの非同期バージョンを確認してください。


編集:私はまだあなたの状況を理解するのに苦労していますが、すでにバイト配列があり、それをディスクに書きたいだけの場合は、 File.WriteAllBytesを使用できます:

File.WriteAllBytes("C:\my\path\myfile.bin", myByteArray)
于 2012-04-04T14:19:07.670 に答える
0

わかりました。AddHeader や ContentType などの他の Response 関数で BinaryWrite を使用すると、動作するようになりました。GetMimeType は私が作った関数です。以下のコード:

Response.Clear()
Response.AddHeader("Content-Disposition", "attachment; filename=" + FileName)
Response.ContentType = GetMimeType(FileName)
Response.BinaryWrite(data)
Response.End()
Response.Flush()

助けようとした人に感謝します!

于 2012-04-05T12:32:59.573 に答える