各位大侠:
 
我特别想知道asp.net(C#版)如何实现文件的上传和下载功能?做毕业设计要用,只学过上传。不过我们的上传是这样的:解决方案根目录下建立一个文件夹,然后运行网页后,点击上传,将文件上传到此文件夹里。但是我不知道怎么从这个文件夹里下载啊。

解决方案 »

  1.   

    <a href="填要下载的文件的路径">下载</a>
      

  2.   

    文件上传:
     protected void Button1_Click(object sender, EventArgs e)
        {
            if(FileUpload1.HasFile)
            {
                string fileext = System.IO.Path.GetExtension(FileUpload1.FileName);            if (fileext.Equals(".doc"))
                {
                    this.FileUpload1.SaveAs(Server.MapPath("upload") + "/" + this.FileUpload1.FileName);
                    this.Label1.Text = "上传文件成功:/文件大小为:" + FileUpload1.PostedFile.ContentLength;
                }
                else
                {
                    this.Label1.Text = "文件类型不对!只能上doc文件!";
                }
            }    }
      

  3.   


    <%
    Response.Buffer=true
    取得要下载的文件,如果不为空。就下载
    dim url,trueurl
    url="下载文件路径和下载文件名"
       fname=Request("filename")
       if fname<>"" then
          trueurlurl=server.MapPath("/") &url
       end if
       set objFso=server.CreateObject("scripting.filesystemobject")
       set fn=objFso.GetFile(trueurl)
       flsize=fn.size
       flname=fn.name
       set fn=nothing
       set objFso=nothing
       
       set objStream=server.CreateObject("adodb.stream")
       objStream.Open 
       objStream.Type=1
       objStream.LoadFromFile url
       
       select case lcase(right(flname,4))
          case ".asf"
          ContentType="video/x-ms-asf"
          case ".avi"
          ContentType="video/avi"
          case ".doc"
          ContentType="application/msword"
          case ".zip"
          ContentType="application/zip"
          case ".xls"
          ContentType="application/vnd.ms-excel"
          case ".gif"
          ContentType="image/gif"
          case ".jpg","jpeg"
          ContentType="image/jpeg"
          case ".wav"
          ContentType="audio/wav"
          case ".mp3"
          ContentType="audio/mpeg3"
          case ".mpg", "mpeg"
          ContentType="video/mpeg"
          case ".rtf"
          ContentType="application/rtf"
          case ".htm","html"
          ContentType="text/html"
          case ".txt"
          ContentType="text/plain"
      Case ".ASP", ".ASA", "ASPX", "ASAX", ".MDB"
            Response.Write "受保护文件,不能下载."
            Response.End
          case else
          ContentType="appliation/octet-stream"
       end select   Response.AddHeader "Content-Disposition", "attachment; filename="&flname
       Response.AddHeader "Content-Length", flsize
       Response.CharSet="UTF-8"
       Response.ContentType=ContentType
       Response.BinaryWrite objStream.Read 
       Response.Flush 
       Response.Clear()
       objStream.Close
       set objStream=nothing
    %> 
      

  4.   

    FileUpload上传
    if(FileUpload1.HasFile)
    {
    string path = Server.MapPath("~/upload/")
    FileUpload1.SaveAs(path + this.FileUpload1.FileName);            
    }
    string path = Server.MapPath("~/") + "";
    Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(FileName, System.Text.Encoding.GetEncoding("utf-8")));
    Response.ContentType = "application/octet-stream";
    Response.WriteFile("" + path + "");
    Response.End();
      

  5.   

    上传比较简单 用 fileUpload控件的saveas方法就可以了下载的话,我是用的httphandle,能控制下载权限,还能实现例如扣积分啊,之类的操作