目标:使用aspx响应输出将.xlsx文件从服务器传输到客户端。
方法尝试: 我对所有这些方法使用了相同的响应头。
Response.TransmitFile(fileName);
Response.Output.Write(System.Text.Encoding.Default.GetString(File.ReadAllBytes(path)));
//Tried with different encodings.
Response.Output.Write(File.ReadAllText(path,
System.Text.Encoding.Default)); //Tried with different encodings.
结果: 方法1工作(由于一些基础设施相关的约束,我们不能使用这种方法)。但方法2和3不起作用。它导致客户端损坏的.xlsx文件。 虽然.xlsx是xml文件和二进制格式的集合,但我尝试在服务器和客户端使用notepad ++打开文件。我注意到他们没什么不同。
问题:
答案 0 :(得分:0)
请尝试以下方法:
Response.ContentType = "application/vnd.ms-excel";
Response.AppendHeader("Content-Disposition", "attachment; filename=myfile.xlsx");
Response.BinaryWrite(File.ReadAllBytes(path));