.net 下载文件并保留原始名称

fjaof16o  于 2023-01-27  发布在  .NET
关注(0)|答案(1)|浏览(122)

在我下载了一个文件使用此代码:

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,效果非常好。
这和我的代码有关系吗?还是别的什么?

xfb7svmp

xfb7svmp1#

我猜你的文件名有一个扩展名像dotxdot
“t”代表“模板”。Microsoft Office中“模板”类型文档的默认操作是从模板的副本创建新文档。
看看Word文档和Word模板的不同外观:

因此,如果您希望用户下载文档而不是模板,请从模板创建文档,并使用docx扩展名将文档发送给用户。

相关问题