c# - ASP C# 发送文件到客户端

标签 c# asp.net

尝试将文件发送到浏览器以供下载,但摆弄了一个多小时后似乎无法使其正常工作。

我正在使用下面的代码

    string filePath = Server.MapPath("/exports/test.txt");
    string downloadedFileName = "test.txt";

    Response.ContentType = "text/plain";
    Response.AppendHeader("content-disposition", "attachment; filename=" + downloadedFileName);
    Response.TransmitFile(filePath);
    Response.End();

它下载到浏览器,但文件中填充的是页面中的 HTML,而不是文件的内容。如果我写出 server.MapPath 的目录,则该文件位于该目录中。

我最终将使用它向浏览器发送 accdb 或 mdb 数据库,我只是使用 txt,因为很容易在网上找到概念验证示例。如果有的话,我需要在 ContentType 之外更改什么。 ContentType 也应该用于数据库吗?

提前感谢您的帮助!

最佳答案

这可能是因为响应流中已经有一些输出排队等待传输。在传输文件之前,您必须先清除它。如果您使用的是 ASP.NET Web 表单,这会破坏您的页面,因为回发行为将不再有效。

参见 related SO question并回答。

关于c# - ASP C# 发送文件到客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19778941/

相关文章:

c# - 使用多线程发送邮件时出现问题

c# - 释放多个线程?

c# - 单元测试和 session ?

c# - 在 .NET Core 2.x csproj 项目中可靠地生成 C# 代码?

javascript - Knockout Computed Observable 不更新 UI

javascript - MVC 表单读取智能卡后自动发布

c# - WPF - DragOver 事件没有在我的列表框上触发

c# - 在回发中获取复选框后面的代码

asp.net - SEO 友好 301 重定向 .htm 到 .aspx

c# - 返回 Web 窗体中等效的文件