Вызов Matlab EXE из PHP не работает хорошо - PullRequest
1 голос
/ 09 января 2012

Я скомпилировал скрипт matlab в отдельное приложение win, а также в консольное приложение.Сценарий может быть вызван из командной строки с помощью image_process pic1.png.Exe запускается и в результате выдает строку.Нет, я хочу развернуть его в php.Я добавил папку в мой основной каталог веб-сайта под названием uploads.Мне нужно запустить php, чтобы вызвать exe matlab для запуска изображений внутри этой папки.

Теперь я перехожу к своему PHP-скрипту.Я определяю свой каталог загрузок:

define("UPLOAD_DIRECTORY","./uploads"); // defines the uploads directory

, затем добавляю путь к моему обработчику изображений: define ("IMAGE_PROCESSORE", dirname (dirname ( FILE )). "/ Image_process.exe");

наконец я настраиваю свой процесс следующим образом:

<code>case "process":
    $res=array();
    $pic=isset($_REQUEST["pic"])?trim($_REQUEST["pic"]):"";
    if($pic==""){
        echo "No picture name is passed";
        exit();
    }
    exec(IMAGE_PROCESSORE.' "'.realpath(UPLOAD_DIRECTORY).'" '.$pic,$res);
    //exec(IMAGE_PROCESSORE." ".$pic,$res); // this one if I define the image_process.exe inside the uploads folder
    echo"<pre>";
    print_r($res);
    echo"
"; break;

Поэтому, когда я вызываю свой php, как:

localhost/mysitename/phpresponse.php?act=process&pic=pic1.png

Я не получу никакого вывода, но если я запущу

localhost/mysitename/phpresponse.php?act=process&pic=c:\xampp\htdocs\mysitename\uploads\pic1.png

Скомпилированный файл Matlab запустится и выполнится

Я действительно запутался, я пробовал много вещей, но безуспешно...

Ответы [ 2 ]

1 голос
/ 09 января 2012

Похоже, это связано с вашим последним вопросом , поэтому я отвечу на него здесь.
Прежде всего, в скомпилированном Matlab EXE параметры передаются один за другим через командную строку.

Я бы начал с запуска файла EXE вне PHP в командной строке с аргументами, которые вы указали в скрипте. Если это работает, проблема в скрипте PHP . Если нет, проверьте код Matlab еще раз.

0 голосов
/ 09 января 2012

Я нашел решение. Я сделал сценарий вызова 2 аргумента, а затем вместо exec я использовал passthru для выполнения скомпилированного сценария Matlab. Я не знаю, почему именно это сработало, но по крайней мере это сработало: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...