File ASP.NET中的Response.Output是否修改流中文件的编码?
在我的ASP.NET Web表单应用程序中,我必须让用户下载XML文件。为此,当他们按下下载按钮时,将执行以下代码:File ASP.NET中的Response.Output是否修改流中文件的编码?,file,encoding,stream,response,File,Encoding,Stream,Response,在我的ASP.NET Web表单应用程序中,我必须让用户下载XML文件。为此,当他们按下下载按钮时,将执行以下代码: Response.Clear() Response.CacheControl = "Private" Response.Cache.SetExpires(DateTime.Now.AddMinutes(3)) Response.ContentEncoding = Encoding.GetEncoding("ISO-8859-1") Response.ContentType = "
Response.Clear()
Response.CacheControl = "Private"
Response.Cache.SetExpires(DateTime.Now.AddMinutes(3))
Response.ContentEncoding = Encoding.GetEncoding("ISO-8859-1")
Response.ContentType = "text/xml"
Response.AddHeader("Content-Disposition", String.Format("attachment; filename={0}.xml", fileName))
Dim xmlFile As String = _xmlServices.GetXmlFile(fileId);
If Not String.IsNullOrEmpty(xmlFile) Then
Dim xdoc As XmlDocument = New XmlDocument()
xdoc.LoadXml(xmlFile)
xdoc.Save(Response.Output)
End If
Response.Flush()
Response.End()
GetXmlFile(fileId)
函数返回一个包含XML的字符串。获取的字符串已具有指定的编码(
)和签名。这意味着,如果文件被修改,签名将不再有效
对于WPF应用程序,我使用了相同的函数GetXmlFile(fileId)
,它工作得非常好
然而,在我的ASP.NET应用程序中,我有两个问题:
Response.ContentEncoding=
Encoding.GetEncoding(“ISO-8859-1”)
下载的XML文件具有编码。这不是什么大问题因此,我认为
Response.Output
流以某种方式修改了文件。或者这一错误背后可能还有另一个原因 为什么不改为使用Response.TransmitFile,使其与存储在服务器上的文件完全相同?如何将其与XmlDocument对象结合使用?啊哈,对不起,我看到了调用_licenseServices.GetXmlFile,并认为它实际上是硬盘上的文件不,它是动态生成的文件:-)