C# 下载附件的时候,如何默认另存为处理,而不是直接在浏览器中打开?

RT,比如类似txt等浏览器能识别的文件类型,例如:<a href="eefe.txt">文档</a> ,点击之后会直接在浏览器中打开,如何使之弹出另存为对话框呢?

第1个回答  2010-07-27
你可以修改输出的Content-Type,改为通常浏览器无法直接打开的格式。所以你必须在服务器端做额外的处理,比如有个页面ChangeContentType.ashx,改变输出的Content-Type。你不能直接链接到eefe.txt,而是经过这个页面来过滤。
<a href="ChangeContentType.ashx?file=eefe.txt">文档</a>
在这个ashx中,直接输出文件,但是记得改变Response.ContentType。
第2个回答  2010-07-27
试下这段代码:
/// <summary>
/// 下载文件
/// </summary>
/// <param name="fileName">保存的文件名</param>
/// <param name="fileBody">文本内容</param>
private void DownloadFile(string fileBody,string fileName)
{
Response.Clear();
Response.Buffer = true;
Response.Charset = "US-ASCII";
//文件名称
Response.AddHeader("content-disposition", "attachment; filename=" + fileName);

//文件内容
Response.Write(fileBody);

Response.Flush();
Response.End();
}
第3个回答  2010-07-27
已流的方式直接输出本回答被提问者采纳
第4个回答  2010-07-27
自己写判断除了网址,一律弹出另存为窗口

C# 下载附件的时候,如何默认另存为处理,而不是直接在浏览器中打开?
你可以修改输出的Content-Type,改为通常浏览器无法直接打开的格式。所以你必须在服务器端做额外的处理,比如有个页面ChangeContentType.ashx,改变输出的Content-Type。你不能直接链接到eefe.txt,而是经过这个页面来过滤。文档 在这个ashx中,直接输出文件,但是记得改变Response.ContentType。

...中如何强制浏览器重新访问服务器下载页面,而不是从缓存读取页面...
<%@ OutputCache Duration="5" Location="None" %> 在页头上加上这句.作用,页面输出缓存过期时间5秒,本地不保存.保证页面请求每次都是从服务器下载页面.

C#如何实现打开下载链接后,避免出现下图“文件下载”提示框,且自动默认...
这是浏览器基于安全方面的考虑,避免不了的,没有办法直接去掉,除非换操作系统。

C#中关于下载文件的Response问题
1、我先解释你不懂的代码吧 Response.AddHeader("Content-Disposition", "attachment; filename=" + \/\/这一句是添加报文头,在客户端出现,打开,另存为,取消的对话框 HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));\/\/防止文件名含有中文,而进行编码,这样中文就不会显示乱码了 Re...

asp.net c#版 HyperLink1的NavigateUrl已绑定,如何实现单击出现下载对 ...
2, 在Web.config 文件中注册该类行的HTTP 处理程序,这将更改ASP.NET 调用你指定的HTTP 处理程序处理对具有该扩展名的资源的请求。(比如,你的URL扩展名是.txt .bmp等,会自己在浏览器打开,而不是下载,要这些文件,需要重新指定处理程序)(也可以直接修改这个类型的MIME实现下载,这个比重新指定处理程序...

...展示在页面(不需要存在本地文件,是直接在页面打开)?
可以考虑用word另存为其他格式比如html然后结合webbrowser控件,方法很多,30rmb可以帮写

《C#》webBrowser控件
不能,首先WebBrowser控件是紧跟IE联系的,webBrowser.Navigate的作用就是打开一个网页,而当源文件是其他文件时,会提示用户打开还是保存,这是IE的默认,改变不了的。建议将那个excel文档直接另存为成HTML网页格式,然后通过webBrowser打开。

在网页设计中怎样设置浏览器编码为utf-8
as 在弹出的对话框下面character coding中选择utf-16,这种是需要你每个脚本都得设置,另一种简单的方法是找到安装目下的这个文件夹,我的目录是C:\\Program Files\\Unity\\Editor\\Data\\Resources\\然后修改里面的81-C#,将该文件夹另存为utf-16的格式。不过我还是要说一下,网上很多说改成utf-8的这些...

VB怎么下载文件同时保持原来的名字?
题主那个 C# 转成VB.net :Dim hwr As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create("你要下载文件的URL地址")hwr.GetResponse()Dim fileName As String = System.IO.Path.GetFileName(hwr.Address.ToString())

c#自编浏览器中超链接求解决!!
private void webBrowser1_DocumentCompleted(object sender,WebBrowserDocumentCompletedEventArgs e) { \/\/将所有的链接的目标,指向本窗体 foreach (HtmlElement archor in this.webBrowser1.Document.Links) { archor.SetAttribute("target", "_self"); } \/\/将所有的FORM的提交目...

相似回答