仰天一笑

昨日不悔,今日勿失,明日莫忧! —徐羽

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  241 随笔 :: 27 文章 :: 876 评论 :: 43 引用

有个朋友问我下载弹出提示框的写法,具体如下:

出现提示框

string strFile="F:\\a.doc";//路径根据实际情况而定
if(!System.IO.File.Exists(strFile))
   {
    Response.Write("<script language='javascript'>alert('对不起,文件不存在!');</script>");
    return;
   }
   Response.Clear();
   Response.ClearHeaders();
   Response.Charset = "GB2312";
   Response.ContentEncoding =System.Text.Encoding.UTF8;
   Response.ContentType = "application/octet-stream";
   FileInfo fi=new FileInfo(strFile);
   Response.AddHeader("Content-Disposition","attachment;  filename="  +  HttpUtility.UrlEncode(fi.Name)) ;
   Response.AddHeader("Content-Length",fi.Length.ToString());
   byte[] tmpbyte=new byte[1024*8];
   FileStream fs=fi.OpenRead();
   int count;
   while((count=fs.Read(tmpbyte,0,tmpbyte.Length))>0)
   {
    Response.BinaryWrite(tmpbyte);
    Response.Flush();
   }
   fs.Close();  
   Response.End();

直接在浏览器中打开
   string strFile="F:\\a.doc";//路径根据实际情况而定
   Response.Clear();
   Response.ClearHeaders();
   Response.Charset = "GB2312";
   Response.ContentEncoding =System.Text.Encoding.UTF8;
   Response.ContentType = "application/msword";
   Response.WriteFile(strFile);

posted on 2006-12-18 19:18 仰天一笑 阅读(957) 评论(1)  编辑 收藏 网摘 所属分类: ASP.Net-C#

评论

徐先生:
你好!首先感谢你在网上发表含金量如此高的文章.
拜读之后,仍有如下困惑,恳望指点:
我是ASP的入门者,所以许多老手认为非常简单的问题,对我来说,都可能是不可逾越的鸿沟,如果我说的问题太过幼稚,请勿见笑.
1 你给出的代码模块在运行时有一个问题,就是无论打开、保存还是可能的后继操作“下载”,各个对话框中显示的文件主名或默认的文件主名都不是例中的"a.doc"中的"a",而是我运行这段代码的aspx程序名(比如我的运行模块名是"webTest.aspx",对话框就显示文件名webTest.doc,保存对话框中默认文件名也"WebTest.doc");不知是怎么回事?
2 通用情况下,应该视具体下载文件的类别确定使用的代码语句。你的例中给了Word文件档的作法,但比如说Excel、PowerPoint、Zap、Rar文件应该怎么使用什么样的代码,并把这样的多选择程序嵌入你的范例模块呢?
我的邮箱是:ykqiang2005@126.com.,望不吝赐教,深谢。
QQ:327389514
老叶
2007年1月15日于深圳。

  回复  引用    




发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 596074




相关文章:

相关链接: