下载文件时有什么办法可以不直接打开文件而是弹出下载对话框?我还有乱码 为什么不直接用<a href="文件名">下载</a> 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 因为我要下载的文件是word文件,如果用你的方法(<a href="文件名">下载</a>),当你单击它时,系统会自动打开,不会直接让你下载,我们的头要求后者 我认为fs.name应该制定自己过滤后的名字,比如说使用文件标题作为下载文件的默认的名字,把文件名不允许的字符全部替换掉! 这是我封装的一个下载的方法,看看如何?/// <summary>/// Force to pop the dialog box for download! /// </summary>/// <param name="p">Page object</param>/// <param name="_FilePath">The Path of this file</param>/// <param name="_FileName">Default FileName which Show in the dialog box</param>public static void Download(Page p, string _FilePath, string _FileName){p.Response.ContentType = "APPLICATION/OCTET-STREAM";p.Response.AddHeader("Content-Disposition", "attachment;filename=" + p.Server.UrlEncode(_FileName));FileStream objFStream = new FileStream(_FilePath, FileMode.Open, FileAccess.Read);IntPtr objIPtr = objFStream.Handle;long lngStart = 0, lngEnd = objFStream.Length;p.Response.WriteFile(objIPtr, lngStart, lngEnd);objFStream.Close();} 小帆: 其实你的代码和我的差不多,我刚才调试了一下程序,发现如果我要下载的中文名字太长就不行了,不是因为其中有中文标点的原因,对于短的中文名字是毫无问题的。大家可以把上个程序中的strFile赋值等于“d:\Application\eaaddition\许亚阿瑟多幅洒的发毒素搜的扶绥大发斯蒂芬速度.doc”试验一下,谢谢, 怎样读十六进制的文件 C#开发OUTLOOK插件时,Datetimepicker控件的问题 C#开发winform的问题 怎么用后台的变量控制有母版页的aspx页面的标题 请问我保存到一个文本上面为什么出现把数据全部一横读取出来的~ 构造函数 X509Certificate (Byte[]) Byte[]从那里获取???? 怎样提高WEB系统安全性! 为什么关闭窗体Form1后没有Form2出现呢 我动态创建了linkbutton,并加了click事件,但怎么把一个字符串参数传给它呢 都说csdn大牛多,我有个C# 问题急需解决,求帮忙 一个错误 C#怎样向线程传递参数
/// <summary>
/// Force to pop the dialog box for download!
/// </summary>
/// <param name="p">Page object</param>
/// <param name="_FilePath">The Path of this file</param>
/// <param name="_FileName">Default FileName which Show in the dialog box</param>
public static void Download(Page p, string _FilePath, string _FileName)
{
p.Response.ContentType = "APPLICATION/OCTET-STREAM";
p.Response.AddHeader("Content-Disposition", "attachment;filename="
+ p.Server.UrlEncode(_FileName));FileStream objFStream = new FileStream(_FilePath, FileMode.Open, FileAccess.Read);
IntPtr objIPtr = objFStream.Handle;
long lngStart = 0, lngEnd = objFStream.Length;p.Response.WriteFile(objIPtr, lngStart, lngEnd);
objFStream.Close();
}
其实你的代码和我的差不多,我刚才调试了一下程序,发现如果我要下载的中文名字太长就不行了,不是因为其中有中文标点的原因,对于短的中文名字是毫无问题的。大家可以把
上个程序中的strFile赋值等于“d:\Application\eaaddition\许亚阿瑟多幅洒的发毒素搜的扶绥大发斯蒂芬速度.doc”
试验一下,谢谢,