...
                     ...
             //计算当前上传文件的百分比
                    long percent = writtenSize * 100 / totalLength;
SendPercentToClient(percent);
服务端OK!修改客户端,添加JS处理函数:
复制代码 代码如下:
        function RequestProgress() {
            $.post("RequestProgressAsyncHandler.ashx", function (data, status) {
                if (status == "success") {
                    $("#progressValue").text(data + "%");
                    data = parseInt(data);
                    $("#progressBar").progressbar({ value: data });//JQuery UI 设置进度条值
                    //如果进度不是 100,则重新请求
                    if (data != 100) {
                        RequestProgress();
                    }
                }
            });
        }
在form中添加事件omsubmit的处理函数为RequestProgress
复制代码 代码如下:
<form action="UploadFileHandler.ashx" onsubmit = "RequestProgress();" method="post" target = "frameFileUpload" enctype="multipart/form-data">
补充几点:
1.默认Asp.Net允许的上传文件的大小是4M,可以在Web.config中修改其大小限制
复制代码 代码如下:
    <system.web>
        <httpRuntime maxRequestLength="444444"/>
    </system.web>
maxRequestLength的单位是KB
2.在IE 8.0测试中,在文件上传完毕后,状态栏还处于请求中

反正不是后台还在请求,这个放心,只要把鼠标在按钮和浏览上面来回移动几下就没了,可能是JQuery UI 的问题。FF和Chrom下没这个问题,就是显示效果会有点差,但是上传没问题的。
源代码下载:UploadFileDemo.rar
您可能感兴趣的文章:
