使用打开/保存对话框将字符串保存到客户端

时间:2010-08-08 14:26:24

标签: asp.net client stream types mime

我使用以下代码将字符串的内容(转换为字节数组)写入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)文件名?

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

1 个答案:

答案 0 :(得分:0)

  1. 是的,由于您的内容类型(MIME类型),它正在保存.txt。使用image / png。

  2. 你如何删除破折号和空格? String.Replace很棒。 fileName.Replace(“ - ”,“”);等