我有一个aspx网站:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Download.aspx.cs" Inherits="ATP.Management.Web.Download" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
...
</div>
</form>
</body>
</html>
后面有以下代码:
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-disposition", "attachment; filename={0}".FormatWith(filename));
var bytes = File.ReadAllBytes(@"c:temp" + filename);
Response.BinaryWrite(bytes);
请注意,我并不是真的从c:temp中读取,这只是一些测试代码。这工作得很好,文件传输正常,但是当我在记事本中打开文件时,它似乎有下载页面的<html>....</html>
文本附加在它上面。
为什么会发生这种情况,我该如何预防?
在二进制写入后添加Response.End()