我准备把一段字符进行处理后写入到文本中(弹框下载),在web页面中点击一个按钮。
但是输出的文本缺不是我想要的字符串而是该页面的html
写入代码如下
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.IO; /// <summary> ///export 的摘要说明 /// </summary> public class export { /// <summary> /// 导出到notepad /// </summary> /// <param name="contents">待导出的字符串</param> /// <param name="fileName">文件名</param> public static void ToTXT(string contents, string fileName) { HttpContext.Current.Response.Buffer = true; HttpContext.Current.Response.Clear(); //HttpContext.Current.Response.Charset = "ASNll"; HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.Default; HttpContext.Current.Response.ContentType = "application/ms-txt"; HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + "" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8)); TextWriter tw = HttpContext.Current.Response.Output; tw.WriteLine(contents); HttpContext.Current.Response.End(); tw.Close(); } }
我发现自己的浏览器写入的话发现没有什么问题,但是我远程后别人的电脑就有问题。
我自己电脑的浏览器为IE 别人的电脑为360
但是我自己下了个360还是可以的。求解。
是不是因为在传送过程中的问题?
我直接把string赋给这个方法,string不可能有问题的呀。再怎么也不应该是网页吧。。。
把下载的链接加个参数吧,比如:url = "http://9520.me/?" + DateTime.Now.Ticks;
应该不是参数的问题吧,如果是连接问题,也不应该是把整个html页面的代码保存下来呀。
可能是人家系统浏览器默认直接显示文本内容的文件吧?
ContentType用application/octet-stream试试
要怎么让浏览器直接显示文本内容文件啊。我得测试呀
@编译真难:
显示文本内容直接write就是了啊,什么都不用设置
又见360游览器。。。。
楼主你可以更替下下面这句话,缺少了文件的类型,虽然你在上面用了“HttpContext.Current.Response.ContentType “定义了类型,你可以看下这个http://www.cnblogs.com/dreamof/archive/2008/06/24/1229069.html,相信会对你有所理解
HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + "" + System.Web.HttpUtility.UrlEncode(fileName+".txt", System.Text.Encoding.UTF8));