因此,使用 vb.net,我从服务器检索用户希望下载的文件的字节数据。我总是知道文件名和扩展名是什么,但我不知道如何开始以正确的文件格式下载字节数据。我该怎么做呢?
编辑:澄清一下,我已经在代码中以字节格式检索数据,我只需要将其下载为已知的正确文件类型。我一直隐藏文件的 URL,所以它永远不会暴露。
如果要将文件直接下载到硬盘驱动器,最简单的解决方案是使用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)
好吧,我想通了。将 BinaryWrite 与 AddHeader 和 ContentType 等其他 Response 函数一起使用,我得到了它的工作。GetMimeType 是我制作的一个函数。下面的代码:
Response.Clear()
Response.AddHeader("Content-Disposition", "attachment; filename=" + FileName)
Response.ContentType = GetMimeType(FileName)
Response.BinaryWrite(data)
Response.End()
Response.Flush()
感谢那些试图提供帮助的人!