我正在从数据库服务器检索一个文件,并允许用户下载它。问题是,我没有从服务器读取相同的字节流。
我已经确认(通过大量的response.write)我收到了正确的字节数组,它们的顺序正确,等等。。。
下面是下载的代码。文件内容是一个字节[]:
Response.Clear();
Response.AddHeader("Content-Disposition",
"attachment; filename=" + st.FileName);
Response.AddHeader("Content-Length", st.FileSize.ToString());
Response.ContentType = "application/octet-stream";
Response.Write(new System.Text.ASCIIEncoding()
.GetString(st.FileContents));
Response.End();
FF D8 FF E0 1E D0 4A 46 58 58 00 10 FF D8 FF DB
(是的,这是jpeg图像的开始)
我最终得到了这样的结果:
C3 BF C3 98 C3 BF C3 A0 1E C3 90 4A 46 58 58 00
编辑
答案当然是使用BinaryWrite而不是Write。