我有一个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>
文本。
为什么会发生这种情况,我该如何防止这种情况发生?
答案 0 :(得分:1)
在二进制写入后添加Response.End()
。