将Byte数组从服务器传输到浏览器

Mil*_*les 2 c# asp.net arrays byte transfer

我有一个包含文件内容的数据库列.我将它转换为服务器上的byte [](我不想将文件保存到磁盘),然后将其发送到客户端进行下载.该文件可以是任何东西(pdfs,pics,word,excel等).

我有文件名,所以我知道扩展,但我不知道如何将它发送给客户端的最佳方式.这是我目前所在的地方:

string fileName = ds.Tables[0].Rows[0]["form_file_name"].ToString();
byte[] fileContents = (byte[])ds.Tables[0].Rows[0]["form_file_contents"];
Run Code Online (Sandbox Code Playgroud)

我从哪里开始?

Qui*_*son 6

你应该能够通过这样的东西把它写到客户端......

Response.Clear();
Response.AddHeader("Content-Length", fileContents.Length.ToString());
Response.AddHeader("Content-Disposition", "attachment; filename=FILENAME");
Response.OutputStream.Write(fileContents, 0, fileContents.Length);
Response.Flush();
Response.End();
Run Code Online (Sandbox Code Playgroud)

  • 或者Response.BinaryWrite(fileContents)而不是写入OutputStream. (2认同)