如何写一个文件流的上下文到我的ASP.net HTTP响应



假设我希望我的ASP.net web服务器打开一个文件,然后将其发送到浏览器。

首先,我这样写:

FileInfo file = new System.IO.FileInfo(@"\mysharemyfile.zip");
FileStream fileStream = file.Open(FileMode.Open, FileAccess.Read, FileShare.Read);

接下来是什么?

我会想一些类似于Response.Write(...的东西,但是我很难弄清楚。

直接来自MSDN:

HttpResponse。BinaryWrite方法

 FileStream MyFileStream;
 long FileSize;
 MyFileStream = new FileStream("sometext.txt", FileMode.Open);
 FileSize = MyFileStream.Length;
 byte[] Buffer = new byte[(int)FileSize];
 MyFileStream.Read(Buffer, 0, (int)FileSize);
 MyFileStream.Close();
 Response.Write("<b>File Contents: </b>");
 Response.BinaryWrite(Buffer);

Edit:当然还有很多其他的方法,比如流式传输,它允许你永远不会在web服务器上一次分配字节[]缓冲区。

发送文件的一个好方法是在发送实际的原始数据之前使用内容处理头

例如:

Response.ContentType = "application/jpeg";
Response.AddHeader("content-disposition", "attachment; filename=" + fileName);
Response.WriteFile(path);
Response.End();

其中fileName为文件名(带扩展名)path是文件

的完整路径

相关内容

  • 没有找到相关文章

最新更新