Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用远程服务时更新文件上载进度_Php_Jquery_Ajax_Curl - Fatal编程技术网

Php 使用远程服务时更新文件上载进度

Php 使用远程服务时更新文件上载进度,php,jquery,ajax,curl,Php,Jquery,Ajax,Curl,因此,我将视频文件上传到远程服务/服务器(Ooyala)。我很难弄清楚如何显示发送到服务器的文件块的进度。我已经做好了其他一切工作,显示上传进度是我的用例最不需要的。我很不愿意改变我的代码,我想这就是为什么我没有得到它。用户将文件上传到表单中,我将其分成若干块,并使用formData将其追加。然后my$.ajax将所有formData发送到我的服务器进行处理,以上载到远程Ooyala服务器: $.ajax({ url: ".parseUploadJSON.php", data:

因此,我将视频文件上传到远程服务/服务器(Ooyala)。我很难弄清楚如何显示发送到服务器的文件块的进度。我已经做好了其他一切工作,显示上传进度是我的用例最不需要的。我很不愿意改变我的代码,我想这就是为什么我没有得到它。用户将文件上传到表单中,我将其分成若干块,并使用formData将其追加。然后my$.ajax将所有formData发送到我的服务器进行处理,以上载到远程Ooyala服务器:

$.ajax({
    url: ".parseUploadJSON.php",
    data: formData,
    processData: false,
    contentType: false,
    type: "POST",
        success: function (result) {
          if($('.notice').length != 0){
         $('.notice').hide();
          }
        $("#progress").hide();
        $("#alert").html("Thank you for your submission! Your video will be reviewed shortly. Please check back soon at <a href='http://site.com/page/local-video-uploads'>Local Video Uploads</a> to see if your entry has been approved.");
    console.log(result);
        }
    }); //end $.ajax 
我想用它作为一个指标,来判断区块是否成功发送。不幸的是,我的AJAX只在发送完所有块之后才返回响应。有没有任何方法可以使用这个$.ajax调用来实现这一点


感谢您抽出时间

您可以使用
onProgress
事件跟踪上传并更新进度条。我没有太多的运气使它与jQuery一起工作,但是如果您使用XHR2请求,它会工作得很好。谢谢,我会研究它的!
foreach($upload_urls as $key => $url){

    $response_bool = curlOps($_FILES['fileChunk'.$key]['tmp_name'], $url);
    if($response_bool){
        $percentage += (1/sizeof($upload_urls)*100);
        $response_array['status'] = 'success';
        $response_array['progress'] = $percentage;
    }else {
        $response_array['status'] = 'error';
        $response_array['message'] = 'Something happened.  Please refresh the page and try again';
        break;
    }
}