ASP.Net上传文件,如何加一个进度条来显示上传进度?如果上传多个文件,如何显示当前已经上传了几个文件了?
最好通过ajax + asp.net来实现,谢谢!

解决方案 »

  1.   

    用flex显示上传进度,用.net页面做接收端。这样会收到更好的效果,你收一下“flex 上传文件”可以收出一大堆。
      

  2.   

    百度搜索下asp.net 大文件上传吧
      

  3.   

    http://blog.5d.cn/user39/riahome/200709/439541.html
    http://www.023si.com/html/60/t-16860.html上面这个也许对楼主有帮助。
      

  4.   

    现在有两种主流方法,你都能在网上搜索到的(可能只有英文资料):1.纯ASP.NET做法:上传的时候使用HttpWorkerRequest对象来获取已经上传多少个字节的数据,保存到Session中,同时客户端用Ajax的方法请求服务器该Session值,更新客户端页面上的进度显示。2.使用Flash的做法:有做好的Flash是专门做这个事情的,甚至连上传按钮都不用点,在对话框里选好文件就自动开始上传,能看到进度。
      

  5.   

    51aspx    有个用FLASH做的,你找一下。
      

  6.   

    public static void DownFile( string URL, string Filename, ProgressBar Prog )
    {
      System.Net.HttpWebRequest Myrq = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(URL);
      System.Net.HttpWebResponse myrp = (System.Net.HttpWebResponse)Myrq.GetResponse();
      long totalBytes = myrp.ContentLength;
      Prog.Maximum = (int)totalBytes;
      System.IO.Stream st = myrp.GetResponseStream();
      System.IO.Stream so = new System.IO.FileStream(Filename, System.IO.FileMode.Create);
      long totalDownloadedByte = 0;
      byte[] by = new byte[1024];
      int osize = st.Read(by, 0, (int)by.Length);
      while (osize > 0)
      {
        totalDownloadedByte = osize + totalDownloadedByte;
        Application.DoEvents();
        so.Write(by, 0, osize);
        Prog.Value = (int)totalDownloadedByte;
        osize = st.Read(by, 0, (int)by.Length);
      }
      so.Close();
      st.Close();
    }
      

  7.   

    楼上的是CS模式下的 建议ajax