gpt4 book ai didi

asp.net - 为什么 Content-Disposition header 在 IE 8 中不起作用?

转载 作者:行者123 更新时间:2023-12-02 16:36:27 24 4
gpt4 key购买 nike

我正在尝试将文本文件 (CSV) 流式传输到响应,并且以下代码在 Firefox 3 中完美运行,但当我使用 IE 时,它看起来想要下载实际的 .aspx 页面,并提示文件内容与文件扩展名或类型不匹配。如果我随后选择下载该文件,它会正确下载 CSV 数据并在 Excel 中打开它。我做错了什么?

    DataTable dt = ExtensionsProvider.ListPrivateCallCostsForCsv(reportFilter.BusinessUnit, reportFilter.StartDate,
reportFilter.EndDate);
Response.Clear();
Response.Buffer = true;
Response.ContentType = "text/csv";
Response.AddHeader("Content-Disposition", "filename=" + GetExportFileName());
DataTableHelper.WriteCsv(dt, Response.Output, false);
Response.End();

最佳答案

Response.AddHeader("Content-Disposition", "filename=" + GetExportFileName());

应该是:

Response.AddHeader("Content-Disposition", "attachment;filename=" + GetExportFileName());

如果没有主要的 Content-Disposition 值,IE 将仅使用 URL 的尾部 — something.aspx — 作为文件名。

(上面假设 GetExportFileName() 返回一个删除了大部分标点符号的清理文件名。在 IE 中, header 参数中可以包含哪些内容作为标记或带引号的字符串,这是一个令人烦恼的问题;请参阅 this question详情)

关于asp.net - 为什么 Content-Disposition header 在 IE 8 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/698308/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com