0

XAMPP 環境の Windows マシンで PHP を実行しています。AJAX リクエストを使用して、ムービーを MP4 から OGG に変換します

function convertMovie(movieName) {
    $.ajax({
       url: 'movieManagement.php?queryType=convertMovie&value='+movieName,
       async: true
    });
}

およびPHPコードの場合

function convertMovie($value) {
    $command = "psexec -d php ".getcwd()."\\movieConverter.php ".$value." > nul 2<&1";
    shell_exec($command);
}

ムービーコンバーターでは、コードは次のようなものです

//some more code here
if ($fileExtension === 'mp4' || $fileExtension === 'MP4') {
            $newFileName = $serverAddress . $tempFileName . "ogg";
            $executeCommand = 'psexec -d '.getcwd() . '\\ffmpeg -i "' . $oldFileName . '" "' . $newFileName . '" > '.$serverAddress.'nul 2>$1';
        }
        shell_exec($executeCommand);

今、私の問題は、このブラウザーを台無しにするたびに、これまでのように ajax 呼び出しが返されるのを待つことですが、コマンド シェルでこれらのコマンドを個別に実行すると、正常に動作します。ムービー変換がバックグラウンドで動作し、ブラウザは無料のままにしたい

この質問が少なくとも 1000 回は聞かれていることは知っていますが、これに対する具体的な答えを見つけることができませんでした。無知で申し訳ありません。

4

1 に答える 1

0

次のように終了することで、プロセスをバックグラウンドで (とにかく Linux 上で) 実行できます&

shell_exec($command . ' &');
于 2012-10-05T02:38:37.763 に答える