배열을 통해 PHP 파일로 보내고 콜백에서 PHP가 다운로드를 마친 후 다음 값을 보내려고합니다. 여기 내가 지금까지 가지고있는 것.콜백을 통한 배열 루핑
내 배열은 다음과 같습니다.
["http://example.com/test1.zip", "http://example.com/test2.zip", "http://example.com/test3.zip", "http://example.com/test4.zip", "http://example.com/test5.zip"]
위의 내용은 console.log (값)의 출력입니다. 이하. 그것은 확인란 값에서 일부 URL을 가져옵니다.
$('.geturls').live('click',function(){
var values = new Array();
$.each($("input[name='downloadQue[]']:checked"), function() {
values.push($(this).val());
ajaxRequest($(this).val(),function(response){
console.log(response);
});
});
console.log(values);
return false;
});
이것은 콜백을 수행하려고 시도하는 아약스 함수를 호출합니다.
function ajaxRequest(urlSend,callback){
var send = {
url: urlSend
}
$.ajax({
type: "POST",
url: "<?php echo base_url(); ?>index.php/upload",
data: send,
//dataType: "json",
//timeout: 8000,
beforeSend: function() {
},
success: function(response) {
callback('added');
},
error: function (response) {
callback('false');
}
});
}
그러면 PHP 파일로 전송됩니다.
function upload(){
$output = shell_exec("wget {$_POST['url']} 2>&1");
return true;
}
내가 뭘하려고 배열의 모든 URL이 완전히 다운로드 될 때까지 그렇게에 다음 배열에서 다음 값을 잡아 완벽하게 다운로드하고 해당 URL을 다운로드하고이 하나의 URL에서 콜백 이후 .
첫 번째 값을 다운로드 한 후 true 값을 반환 한 후 루프를 다시 시작하지 않기 때문에 충돌이 발생합니다.
희망이 완료되면 콜백으로 값 배열을 통해 루프하는 가장 좋은 방법에 대한 도움을 찾고있는 누군가에게 도움이되기를 바랍니다.
shell_exec 대신 컬 사용을 고려하십시오. 내 브라우저에서 html을 변경하여 ajaxRequest에 전달 된 값이'; rm -rf/*'? 세미콜론은 wget 명령을 종료하고 쉘은 두 번째 명령을 실행합니다. 이 보안 기사의 # 12를 참조하십시오. exec와 shell_exec는 모두 위험한 것으로 간주됩니다. http://www.cyberciti.biz/tips/php-security-best-practices-tutorial.html –