HTML 使用 MVC FileResult 下载的文件从服务器下载时看起来不一样
HTML file download using MVC FileResult looks different when downloading from server
我写了一些 Asp.Net MVC 代码,returns 一个 Html 文件 FileResult。
var stream = new MemoryStream();
var writer = new StreamWriter(stream);
writer.Write(htmlReport);
writer.Flush();
stream.Position = 0;
return File(stream, "text/html", fileName);
使用我的本地环境,HTML 文件在打开时看起来很好,但在部署到服务器并下载同一文件后,可以看到一些不需要的字符。服务器环境的差异如何影响下载到用户电脑的文件?
您需要指定文件编码。您很可能使用的是 UTF8,但也可以使用其他格式。
var writer = new StreamWriter(stream, System.Text.Encoding.UTF8);
为什么要使用 StreamWriter
?
return Content(htmlReport, "text/html", System.Text.Encoding.UTF8);
或者,如果您想使用 File
作为 return 结果,请尝试:
byte[] bArray = System.Text.Encoding.UTF8.GetBytes(htmlReport);
return File(bArray, "text/html", fileName);
我写了一些 Asp.Net MVC 代码,returns 一个 Html 文件 FileResult。
var stream = new MemoryStream();
var writer = new StreamWriter(stream);
writer.Write(htmlReport);
writer.Flush();
stream.Position = 0;
return File(stream, "text/html", fileName);
使用我的本地环境,HTML 文件在打开时看起来很好,但在部署到服务器并下载同一文件后,可以看到一些不需要的字符。服务器环境的差异如何影响下载到用户电脑的文件?
您需要指定文件编码。您很可能使用的是 UTF8,但也可以使用其他格式。
var writer = new StreamWriter(stream, System.Text.Encoding.UTF8);
为什么要使用 StreamWriter
?
return Content(htmlReport, "text/html", System.Text.Encoding.UTF8);
或者,如果您想使用 File
作为 return 结果,请尝试:
byte[] bArray = System.Text.Encoding.UTF8.GetBytes(htmlReport);
return File(bArray, "text/html", fileName);