【问题标题】:Save string to client with Open/Save dialog使用打开/保存对话框将字符串保存到客户端
【发布时间】:2011-03-26 23:12:49
【问题描述】:

我正在使用以下代码将字符串的内容(转换为字节数组)写入 ASP.NET/C# 中的客户端

byte[] data = StrToByteArray(strData);
Response.ClearContent();
Response.AppendHeader("content-length", data.Length.ToString());
Response.ContentType = "text/plain";
Response.AppendHeader("content-Disposition", "attachment;filename=" + fileName);
Response.BinaryWrite(data);
Response.Flush();

fileName 是以文件扩展名 (.pgn) 结尾的文件的名称。但是,该文件保存为 .txt 文件,忽略了我给它的扩展名。这与 Response.Contenttype = "text/plain" 有关吗?如何让“打开/保存”对话框显示并保存正确的 (.pgn) 文件名?

此外,如果文件名是由破折号或空格分隔的字符串,则打开/保存对话框出现时,文件名不会完整显示,但会在第一个破折号 (-) 或空格(或逗号)处被截断遇到。如何解决这个问题?

【问题讨论】:

    标签: asp.net client stream types mime


    【解决方案1】:
    1. 是的,由于您的内容类型(MIME 类型),它正在保存 .txt。使用图片/png。

    2. 删除破折号和空格怎么样? String.Replace 很棒。 fileName.Replace("-", "");等等

    【讨论】:

    • 您好,谢谢,我使用了替换,但该文件确实是一个文本文件,但扩展名为“pGn”(不是 png)。在 IE 中保存正确,但在 Firefox 中保存为 .png.txt
    • 我最终解决了。如果我想使用不同的扩展名,我必须使用“application/octet-stream”作为 ContentType。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多