0
PHP를 통해 시스템 컬 명령을 사용하여 파일을 다운로드하고 있습니다. 그게 전부 잘 작동하지만, 지금은 다운로드로 진행 상황을 보여 주려고 노력 중입니다. 라는다운로드하는 동안 PHP/Curl이 진행됩니다.
컬 명령 및 PHP는 다음과 같습니다
$a = popen("cd user; curl -O -# remote.server.com/filename.tar.gz 2>&1", 'r');
ob_flush();flush();
while($b = fgets($a, 64)) {
ob_flush();flush();
if (preg_match('~\b(error|fail|unknown)\b~i',$b)) {
echo "error^$b";
exit;
}
echo str_replace('#','',$b);
ob_flush();flush();
}
pclose($a);
이 아약스를 사용하여 호출되고 출력은 사업부에 표시됩니다
var last_response_len = false;
$.ajax(url, {
xhrFields: {
onprogress: function(e)
{
var this_response, response = e.currentTarget.response;
if(last_response_len === false)
{
this_response = response;
last_response_len = response.length;
}
else
{
this_response = response.substring(last_response_len);
last_response_len = response.length;
}
$(upg).show();
console.log(this_response)
var count = this_response.match(/%/g);
if (count !== null && count.length != 2) $(msg).html(this_response);
}
}
})
이 작동하지만 msg div
에 나와 서 결과는 일관성이 없다. I 얻을 수
1%
5%
12.1%
12.5% 13.2%
14.2%
5.3%
16.7%
를 I가 부분적인 결과 즉 얻을 그래서 I에서만 100까지 0 %를 얻을 12.5% & 13.2%
이 표준화 어쨌든이다 5.3% instead of 15.3%
는, I는 동일한 출력 즉 내의 복수의 결과를 얻을 %?
감사
감사합니다. 나는 실제로 그것을 해결했지만, 당신의 대답은 제가 생각해 낸 것과 거의 같습니다. 내가 추가 한 유일한 다른 것은 5 개의 문자가있는 경우에만 결과를 반향시키는 것입니다. 이 결과는 약간 일시 중지 된 후 프로세스가 '10.0 %'에서 시작됩니다. 이것은 숫자가 누락 된 곳이 몇 개있을 때 잘 작동합니다. – Tom