我想做一个上传控件的进度条,用AJAX每1毫秒刷新一次,所以需要FileUpload每1毫秒返回当前上传文件的字节数,请问怎样获取???

解决方案 »

  1.   

    Upload
      

  2.   


            string filePath = Server.MapPath("~/Upload");
            string fileName=FileUpload1.PostedFile.FileName;
            int fileLength = FileUpload1.PostedFile.ContentLength;
            int upLoadedLength = 0;        //缓存
            int bufferSize = 1;
            byte[] buffer = new byte[bufferSize];        //保存字节
            using (FileStream fs = new FileStream(Path.Combine(filePath, fileName),FileMode.Create))
            {
                int i=0;
                while (upLoadedLength < fileLength)
                {
                    //从输入流放进缓冲区
                    int uploadingLength = FileUpload1.PostedFile.InputStream.Read(buffer, 0, bufferSize);
                    fs.Write(buffer, 0, uploadingLength);
                    upLoadedLength += uploadingLength;
                    float precent = upLoadedLength / fileLength;
                    this.progressContent.Style["width"] = (precent * 400).ToString() + "px";
                    this.progressContent.InnerHtml = (precent*100).ToString()+"%";
                    //线程睡眠 上传就更慢 这样就可以看到进度条了
                    //System.Threading.Thread.Sleep(100);
                }
            
            }upLoadedLength 表示已经上传的字节数
    fileLength表示上传文件的总字节数
      

  3.   

    http://www.cnblogs.com/zengxiangzhan/archive/2010/02/28/1675137.html
      

  4.   

    HttpPostedFile hpf = this.FileUpload1.PostedFile;
                    string FileSize = Convert.ToString(Convert.ToInt32(hpf.ContentLength.ToString()) / 1024);// +"KB";获得上传文件的大小
      

  5.   

    string filePath = Server.MapPath("~/Upload");
            string fileName=FileUpload1.PostedFile.FileName;
            int fileLength = FileUpload1.PostedFile.ContentLength;
            int upLoadedLength = 0;        //缓存
            int bufferSize = 1;
            byte[] buffer = new byte[bufferSize];        //保存字节
            using (FileStream fs = new FileStream(Path.Combine(filePath, fileName),FileMode.Create))
            {
                int i=0;
                while (upLoadedLength < fileLength)
                {
                    //从输入流放进缓冲区
                    int uploadingLength = FileUpload1.PostedFile.InputStream.Read(buffer, 0, bufferSize);
                    fs.Write(buffer, 0, uploadingLength);
                    upLoadedLength += uploadingLength;
                    float precent = upLoadedLength / fileLength;
                    this.progressContent.Style["width"] = (precent * 400).ToString() + "px";
                    this.progressContent.InnerHtml = (precent*100).ToString()+"%";
                    //线程睡眠 上传就更慢 这样就可以看到进度条了
                    //System.Threading.Thread.Sleep(100);
                }
            
            }