C# 实时进度条ASP.net

C# 实时进度条ASP.net,c#,javascript,asp.net,C#,Javascript,Asp.net,我正在AmazonS3上上传大型视频文件,上传时我必须显示进度条。 我使用javascript显示进度条,但它不是实时的,例如,如果我上传3 MB视频,它会显示100%的进度,然后上传视频。然而,在真实情况下,它会在显示进度条的同时上传视频 这适用于小视频,但当我上传超过8MB的视频时,它会显示进度,直到100%正确,而浏览器状态最左角显示50%的进度。 我就是这样做的 var size = 2; var id = 0; function ProgressBar()

我正在AmazonS3上上传大型视频文件,上传时我必须显示进度条。 我使用javascript显示进度条,但它不是实时的,例如,如果我上传3 MB视频,它会显示100%的进度,然后上传视频。然而,在真实情况下,它会在显示进度条的同时上传视频 这适用于小视频,但当我上传超过8MB的视频时,它会显示进度,直到100%正确,而浏览器状态最左角显示50%的进度。 我就是这样做的

 var size = 2;
  var id = 0;
            function ProgressBar() {
            if (document.getElementById('<%=FileVideoUpload.ClientID %>').value != "") {
                document.getElementById("divProgress").style.display = "block";
                document.getElementById("divUpload").style.display = "block";
                document.getElementById("fakebtn").style.display = "block";
                document.getElementById('<%=btnupload.ClientID %>').style.display = "none";
                id = setInterval("progress()", 250);
                return true;
            }
            else {
                alert("Select a file to upload");
                return false;
            }

        }

        function progress() {
            size = size + 1;
            if (size > 299) {
                clearTimeout(id);
            }
            document.getElementById("divProgress").style.width = size + "pt";
            document.getElementById("<%=lblPercentage.ClientID %>").firstChild.data = parseInt(size / 3) + "%";
            document.getElementById("<%=FileVideoUpload.ClientID %>").disabled = true;
            if (parseInt(size / 3) == 100) {
                document.getElementById("updstatus").innerHTML = "Please Wait..";
            }
        }


 <asp:FileUpload ID="FileVideoUpload" runat="server" />&nbsp;<br />
        <br />
        <asp:Button ID="btnupload" runat="server" Text="Upload" OnClientClick="return ProgressBar()"
            OnClick="btnupload_Click" />
        <input type="button" value="Upload" id="fakebtn" style="display: none" />
        <br />
        <br />
        <div id="divUpload" style="display: none">
            <div style="width: 300pt; text-align: center;" id="updstatus">
                Uploading...</div>
            <div style="width: 300pt; height: 20px; border: solid 1pt gray">
                <div id="divProgress" style="width: 1pt; height: 20px; background-color: Gray; display: none">
                </div>
            </div>
            <div style="width: 300pt; text-align: center;">
                <asp:Label ID="lblPercentage" runat="server" Text="Label"></asp:Label></div>
        </div>

如何显示文件上传的实际进度?

根据文件上传关注点,您不能真正进行ajax上传。但可能性很小

使用HTML5文件api: 使用第三方库监控进度条。
希望这能帮助你开始

你可能想看看

希望能对你有所帮助

System.Threading.Thread.Sleep(8000);