对文件下载的补充

      我在ASP.NET中常用的文件上传下载方法一文中写了几种文件上传下载的方法,其中第二部分的下载当时没有具体说清楚,现在补充一下。对于有具体物理路径的文件下载,我们可以采用下面的思路,先将其转化成二进制流,然后用浏览器读出来,具体代码如下:
/// <summary>
        
/// 下载文件
        
/// </summary>
        
/// <param name="path">文件所在的物理路径</param>
        
/// <param name="fileName">文件名称</param>
        
/// <param name="contentType">客户端MIME类型</param>

        private void UpLoadFile(string path, string fileName, string contentType)
        
{
            FileInfo fi 
= new FileInfo(path);
            FileStream fs 
= fi.OpenRead();
            
byte[] FileArray = new byte[(int)fs.Length];
            fs.Read(FileArray, 
0, FileArray.Length);
            fs.Close();

            Response.Buffer 
= true;
            Response.Clear();
            Response.ContentType 
= contentType;
            Response.AddHeader(
"Content-Disposition""attachment;filename=" + fileName);
            Response.BinaryWrite(FileArray);
            Response.Flush();
            Response.End();
        }

posted on 2007-03-13 18:05 Daniel Pang 阅读(945) 评论(5) 编辑 收藏

评论

#1楼 2007-06-14 22:45 条码,条形码,条码打印机,条码扫瞄枪,标签,碳带,条码解决方案[未注册用户]

谢谢了,大哥  回复 引用   

#2楼 2007-10-14 19:51 allan[未注册用户]

有没有从客户端下载服务器端整个文件夹的方法!?
 回复 引用   

#3楼 2008-08-03 14:00 天启      

有个问题,文件大了服务器就崩溃了。
byte[] FileArray = new byte[(int)fs.Length];
如果文件有1G,那这句就新建了个占1G内存的数组。
参考这篇:
C#下载大文件并实现断点续传
http://www.cnblogs.com/gwazy/archive/2007/07/21/826377.html
 回复 引用 查看   

#4楼 2008-08-03 14:03 天启      

@allan
应该不难,遍历你要下载文件夹的所有子文件夹直到找到所有文件。然后依次Response.Redirect,当然这种方法在文件多时不现实。
所以可以用winrar在服务器端打包,然后提供给客户端下载。
 回复 引用 查看   

#5楼 2010-11-22 22:55 sunnboyy      

你上面的代码我看了,我也用过,我也在网上查过,各种方法都试试了,我之所以找了这么多,就是因为我在做ASP。NET WEB开发的过程中遇到了一个问题,这个问题,在平常的网页中运行这个下载链接就正常,但是如果是在带有参数的网页就会出现毛病,会弹出一个下载窗口,点击会跳到迅雷下载,然后就看到实际下载的是本页面中的HTML源文件,看你上面讲的挺透彻的,想问一下具体原因??  回复 引用 查看   

<2007年3月>
25262728123
45678910
11121314151617
18192021222324
25262728293031
1234567

导航

统计

公告

技术交流平台,真诚的希望能和园子里的朋友交流技术,共同进步!
欢迎加入Castle+IBatisNet交流群:2923364(已满),37745404
特别提示:本站文章若无特别申明,均为原创,转载请注明出自'博客园'!
Emailpwei013#163.com
MSNshypw520#gmail.com
昵称:Daniel Pang
园龄:6年4个月
粉丝:5
关注:0

搜索

 
 

常用链接

随笔分类(98)

随笔档案(74)

相册

MY BLOG

公司主页

情侣BLOG

友情链接

积分与排名

最新评论

阅读排行榜

评论排行榜