CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

文件下载的简单问题,50分求救!!!!

楼主maoning()2003-12-01 08:30:11 在 .NET技术 / ASP.NET 提问

知道文件在服务器端   的绝对位置,并且已经存入一个字符串  
  如:   dim   str="e:\项目资料\a车站\调查资料.doc  
  知道服务器的的机器名:如:zc_akj  
   
  在界面上有一按钮,客户端点击他后,即弹出咱们常见的文件下载保存对话框,将文件下载下来。就这么简单事到底咋作阿?要求各种文件类型都适应。而不是象有的网站那样除了zip和exe文件其它类型都直接打开文件。  
   
  用vb作的asp.net工程,谢谢大家。20分  
   
  昨天还提了同样一个问题,没人接,回答后加上那30分,一共50分!  
  问题点数:20、回复次数:4Top

1 楼DrZhang(荷包蛋)回复于 2003-12-01 09:30:44 得分 0

关注Top

2 楼redfoxhuang(C++++)回复于 2003-12-01 09:31:19 得分 20

private   void   WriteStream()  
  {  
  string   strFileName   ="";  
  char[]   cha=Session["number"].ToString().ToCharArray();  
  string   file=builtstring(cha);  
  strFileName   =   "file.doc";  
  FileStream   myF=File.OpenRead(Server.MapPath("file/file.doc"));//通过想对路径取得物理的路径  
   
  strFileName   =   HttpUtility.UrlEncode(System.Text.Encoding.UTF8.GetBytes(strFileName));  
  Response.Clear();  
  Response.ContentType=   myF.GetType().ToString();  
  Response.Charset     =     "UTF-8";  
  Response.AddHeader("Content-Disposition",   "attachment;   filename="+strFileName);  
  System.IO.FileStream   MyFileStream   =new   FileStream(Server.MapPath("file/file.doc"),System.IO.FileMode.Open,System.IO.FileAccess.Read,System.IO.FileShare.Read);  
  long   FileSize   =   MyFileStream.Length;  
  byte[]   Buffer   =   new   byte[(int)FileSize];  
  MyFileStream.Read(Buffer,   0,   (int)FileSize);  
  MyFileStream.Close();  
  Response.BinaryWrite(Buffer);  
  Response.End();  
  }Top

3 楼redfoxhuang(C++++)回复于 2003-12-01 09:32:42 得分 0

我的是直接用流的方式提供文件下载的,用的是c#,注意要引用system.IOTop

4 楼maoning()回复于 2003-12-03 08:41:52 得分 0

我用vb改写了以下,很好用的:  
                          Try  
                                  Dim   fInfo   As   System.IO.FileInfo   =   New   FileInfo(fpath)  
                                  Dim   fname   As   String   =   fInfo.Name  
                                  Response.Buffer   =   True  
                                  Response.Clear()  
                                  Response.AddHeader("Content-Disposition",   "attachment;filename="   +   Server.UrlEncode(fname))  
                                  Response.AddHeader("Content-Length",   fInfo.Length.ToString())  
                                  Response.ContentType   =   "application/octet-stream"  
                                  Dim   MyFileStream   As   FileStream   =   New   FileStream(fpath,   System.IO.FileMode.Open,   System.IO.FileAccess.Read,   System.IO.FileShare.Read)  
                                  Dim   FileSize   As   Long   =   MyFileStream.Length  
                                  Dim   Buffer(CInt(FileSize))   As   Byte  
                                  MyFileStream.Read(Buffer,   0,   Int32.Parse(FileSize))  
                                  MyFileStream.Close()  
                                  Response.BinaryWrite(Buffer)  
                            Catch   ex   As   Exception  
                                  Page.RegisterStartupScript("look",   "<script   language='javascript'>window.alert('文件不存在!'   )</script>")  
                                  Exit   Sub  
                          Finally  
                                  Response.End()  
                          End   Try  
                          '***************************************************************************Top

相关问题

  • 简单问题-复制、下载文件
  • 简单下载rar文件的问题
  • 急,简单,在线等。关于文件下载的链接
  • 一个简单的文件下载问题!!
  • 请教大家一个简单的文件下载的问题
  • 从网络上下载文件出错的简单问题!!!!
  • 文件下载……
  • 下载文件
  • 文件下载
  • 急,一个简单的问题,Aspx如果实现文件下载,并且改变文件名。

关键词

  • 文件
  • 下载
  • strfilename
  • response
  • doc

得分解答快速导航

  • 帖主:maoning
  • redfoxhuang

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo