PHP exec () из bat-файла возвращает 0 при запуске вручную и -1 при запуске через ajax

Я получаю разные значения $ return в зависимости от того, как я выполняю bat-файл.

Когда я тестирую скрипт, который использует exec ($ command, $ output, $ return) для запуска файла bat, запустив скрипт вручную из командной строки, я получаю 0 для $ return и вижу значение в $ out как ожидается. Когда я запускаю тот же скрипт через ajax, $ return равен -1, а $ out — пустой массив.

Я не могу найти много информации для отрицательных возвращаемых значений, но я думаю, что довольно безопасно сказать, что они говорят, что это ошибка — хотя я не уверен, как получить больше информации от этого.

В чем может быть причина того, что я получаю разные значения $ return в зависимости от того, как я запускаю bat-файл?

Спасибо за любые советы и помощь.

Код AJAX — я использую ajaxTime, чтобы попытаться увидеть, сколько времени занимают запросы. Они варьируются от 550-650 до времени отклика:

var ajaxTime = new Date().getTime();
getdSize(f, ajaxTime);

function getSize(f, ajaxTime){
$.ajax({
url: "php file handling the ajax request",
type: "POST",
data: {
file : encodeURIComponent(f),
}
})
.done(function(data){
var totalTime = new Date().getTime()-ajaxTime;
console.log("Ajax Time: " + totalTime);
console.log("Data: " + data);
})
.fail(function(data){
if ( data.responseCode ){
console.log( data.responseCode );
}
console.log("Ajax failure");
});
}

PHP-код —

    $file = $_POST['file'];
echo bat_getSize ($file);
[this calls bat_getSize function]

function bat_getSize($file){
exec("getSize \"$file\"",$out, $ret);
return $out[0];
}

Который называет это
Код летучей мыши —

@echo off
echo %~z1

Спасибо!

Обновить
Правильно ли я понимаю, что использование обратного вызова .done () предотвратит прерывание моего ajax-запроса следующим отправленным запросом? Или это может быть провал?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru