将文件下载到客户端浏览器,在Response.End()处卡住

本文关键字:End Response 文件下载 客户端 浏览器 | 更新日期: 2023-09-27 18:29:24

基于此:将文件下载到客户端浏览器

这也应该起作用:(contenu是字符串)

        Response.Clear();
        Response.ClearHeaders();
        Response.ClearContent();
        Response.AddHeader("Content-Disposition", "attachment; filename='"" + txtFileName.Value.ToString() + "'"");
        Response.AddHeader("Content-Length", contenu.Length.ToString());
        Response.ContentType = "text/plain";
        Response.Flush();
        Response.Write(contenu);
        Response.End();

然而,在Response.End()之后,浏览器似乎做出了反应,因为我看到它在工作,但随后什么也没发生。。。

Chrome和Explorer也是如此。

我该怎么办?

将文件下载到客户端浏览器,在Response.End()处卡住

试试这个参数设置略有不同的代码;它对我有效

protected void ExportData(string fileName, string fileType, string content)
    {
        Response.Clear();
        Response.Buffer = true;
        Response.AddHeader("content-disposition", "attachment;filename=" + Server.UrlPathEncode(fileName));
        Response.Charset = "";
        Response.ContentType = fileType;
        Response.Output.Write(content);
        Response.Flush();
        Response.End();
    }

像这样呼叫

ExportData("Report.txt", "text/plain", yourContentString);