0

そこで、動画ファイルをリモート サービス/サーバー (Ooyala) にアップロードします。サーバーに送信されるファイル チャンクの進行状況をどのように表示するかを理解するのに非常に苦労しています。私はすでに他のすべてをうまく機能させており、アップロードの進行状況を表示することは、ユースケースで必要な最後のことです. 私は自分のコードを変更することに非常に消極的であり、それが私がそれを取得していない理由だと思います. ユーザーがファイルをフォームにアップロードすると、チャンクに分割し、formData を使用してそれらを追加します。次に、$.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 

そこから、Curl を使用してチャンクを Ooyala に送信します。サーバーに送信されているチャンクのクライアントを更新できる方法はありますか? 私の curl_setopt ($ch, CURLOPT_RETURNTRANSFER, false); チャンクが送信されるたびに呼び出されます。

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;
    }
}

チャンクが正常に送信されたことを示す指標としてこれを使用することを考えていました。残念ながら、私の AJAX は、すべてのチャンクが送信された後にのみ応答を返します。この 1 つの $.ajax 呼び出しを使用してこれを行う方法はありますか?

お時間をいただきありがとうございます

4

0 に答える 0