jquery - 带有进度条的asp.net视频上传

标签 jquery asp.net xmlhttprequest

我正在尝试使用 XMLhttprequest() 和 html5 进度元素实现带有进度条的视频上传,如下所示:

    <input type="file" name="fileUpload1" id="fu1" />
    <button type="button" id="clicker" value="Upload" name="Upload" >Upload</button>
    <progress id="prog1"></progress>

和js:

   $("#clicker").live('click', function (e) {
        e.preventDefault();
        UploadVideo("fu1", "");
    });

    function UploadVideo(elm, url) {
         var xhr = new XMLHttpRequest();
         var fd = new FormData();
         fd.append("fu1", document.getElementById("fu1").files[0]);
         xhr.addEventListener("progress", ProcessVideo, false);
         xhr.open("POST", "Handler.ashx");
         xhr.send(fd);
    }

    function ProcessVideo(evt) {
        if (evt.lengthComputable) {
            var prog = document.getElementById("prog1");
            prog.max = evt.total;
            prog.value = evt.loaded;
        }
    }

最后我使用这个通用的 ashx 处理程序来处理它:

    public void ProcessRequest (HttpContext context) {
         var file = context.Request.Files["fu1"];
         var savePath = HttpContext.Current.Server.MapPath("~/teees/" + file.FileName);
         file.SaveAs(savePath);
         context.Response.ContentType = "text/plain";
         context.Response.Write("Hello World");
    }

这工作正常,但进度条没有移动,卡在零处,然后在上传完成后跳到 100,问题是什么?

谢谢

最佳答案

也许有一些关于这些的内容?

  this.xhr = new XMLHttpRequest();
  if ( this.xhr ){
    this.xhr.upload.addEventListener("progress", function(e){ updateProgress(e) }, false);

  function updateProgress(){
     if (e.lengthComputable) {
       var currentState = (e.loaded / e.total) * 100;
       //...
     }
   }

关于jquery - 带有进度条的asp.net视频上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14026049/

相关文章:

javascript - 使用 jquery 设置自定义属性和值

jquery - 每个 tr 减去表中的值

twitter-bootstrap - 没有 'Access-Control-Allow-Origin' 错误,但图像已渲染

ajax - 我可以在与从该端口加载的脚本文件不同的端口上使用 XMLHttpRequest 吗?

javascript - Highcharts 将变量数组添加到系列中

javascript - 如何按数字顺序然后按字母顺序对 JavaScript 对象数组进行排序?

asp.net - 我的 max-age header 来自哪里?

c# - 随着时间的流逝,字典会丢失键值对

ASP.NET MVC 模型绑定(bind) IList<> 参数

javascript - 执行源自 AJAX 加载的外部文件的脚本