Вызов банку из PHP - PullRequest
       4

Вызов банку из PHP

1 голос
/ 06 сентября 2010

У меня есть созданный JAR-файл, который может генерировать PDF-файл. Я назвал это из командной строки, как это -

java -jar project.jar 'Author, An---A Title'

Это работает нормально, но когда я вызываю тот же файл jar из файла PHP со следующим кодом, он создает файл с правильным именем, но его пустым и имеет нулевые байты.

<?php
    echo exec("java -jar project.jar 'Author, An---A Title'");
?>

Я уверен, что это проблема не с jar (поскольку он работает из командной строки), и я почти уверен, что это не из файла PHP (так как он создал пустой файл, поэтому он должен быть прочитан) , так что я думаю, что проблема может быть с разрешениями на каталог? Я использую Linux, и PHP работает через XAMMP, который находится в каталоге OPT. Есть идеи?

Заранее спасибо.

1 Ответ

0 голосов
/ 06 сентября 2010

Я не уверен, что у вас есть контроль над исходным кодом Java, но по крайней мере симптомы указывают, что он не вызывает close() для OutputStream или Writer рассматриваемого файла.*

Обновление : попробуйте вместо этого shell_exec(), чтобы увидеть, что говорит результат.Возможно, это вызвало какое-то исключение на полпути, которое было записано в stderr, который вы полностью пропустили в коде PHP.exec(), а именно только захватывает stdout.

$result = shell_exec("java -jar project.jar 'Author, An---A Title'");
if ($result) {
    echo nl2br($result);
} else {
    echo "shell_exec() failed";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...