目前在用asp.net mvc做一个web系统,需要添加附加下载功能,所有附件都在一个文件夹内,文件夹内会包含子文件和子文件夹,至于其中包含哪些文件不提前分析,可能会不定期更新。有什么比较好的方法实现该功能吗?

解决方案 »

  1.   

    把需要下载的文件挪出web目录,专门弄一个地方存放。
    数据库建一个表,保存 资源名->文件名或者路径名的映射(比如fileid=25,文件名是 /data/download/6512bd43d9caa6e02c990b0a82652dca)。
    当别人访问xxx.com/down/25的时候,设置mime类型为application/octet-stream,读文件并把二进制流推过去。
      

  2.   

    直接数据库存URL,页面可以<a href="文件路径">下载</a>
      

  3.   

    System.IO.Directory.GetFiles()
      

  4.   

    最简单的,适合小文件。就是在服务器上生成一个物理文件,然后页面上给一个这个物理文件的虚拟地址即可了,比如 http://xxxx.com/data/file/xxxx.doc如果是大文件的话,你就需要使用流下载