在我下载了一个文件使用此代码:
using (FileStream fileStream = File.OpenRead(filePath))
{
MemoryStream memStream = new MemoryStream();
memStream.SetLength(fileStream.Length);
fileStream.Read(memStream.GetBuffer(), 0, (int)fileStream.Length);
Response.Clear();
Response.ContentType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
Response.AddHeader("Content-Disposition", "attachment; filename=" + item.filename);
Response.BinaryWrite(memStream.ToArray());
Response.TransmitFile(filePath);
Response.Flush();
Response.Close();
Response.End();
}
代码运行得非常好,但是一旦我在下载后打开docx文件,它就会失去原来的名称,我会得到“文件损坏,无法打开”的消息。这种情况只发生在我的doc & docx文件上,我尝试了xlsx,jpg,pdf,效果非常好。
这和我的代码有关系吗?还是别的什么?
1条答案
按热度按时间xfb7svmp1#
我猜你的文件名有一个扩展名像
dotx
或dot
。“t”代表“模板”。Microsoft Office中“模板”类型文档的默认操作是从模板的副本创建新文档。
看看Word文档和Word模板的不同外观:
因此,如果您希望用户下载文档而不是模板,请从模板创建文档,并使用docx扩展名将文档发送给用户。