2017-05-10 19 views
0

PHPウェブサイトで「exec」関数を実行する際に問題が発生しています。私は変数を引数にとり、テストメッセージを返す実行可能ファイルを使って何回も実行することができます。しかし、画像処理を行う実行可能ファイルを使用する場合、ユーザーが引数としてアップロードするWebサイトから画像を渡したい場合、実行可能ファイルをまったく実行していないようです。私は実行ファイルにいくつかのcoutコマンドを持っていて実行を保証していますが、これらはウェブサイトに表示されていません。だから私は何らかの理由でPHPが実行可能ファイルを実行できないと思いますか?私はここに私のPHPのウェブサイト上で動作していないコードの例です...PHP Webサイトで、引数として画像を渡すとexec関数が実行されない

私のデスクトップから罰金それを実行することができる午前:

$imgtest1="/uploaded_files/me.jpg"; 
$imgtest2="/uploaded_files/clusteroutput.jpg"; 
$nosuppix = 400; 
$noweight = 100; 
$executabletest = exec("ImgProc $imgtest1 $nosuppix $noweight $imgtest2"); 
echo $executabletest; 

すると、エラーをデバッグしたり、取得する方法はありますexec関数からの出力?実行可能ファイルに画像を渡すときに欠けているものがありますか?実行可能ファイルは、実行可能ファイルと同じフォルダにある複数のDLLファイルを使用します。彼らは何らかの理由で一緒にパッケージ化する必要がありますか?私はお詫びしますが、実際にテストするために残っていることはわかりません...

***編集:私はescapeshellcmd自体にすべてのコードを書き出すと実行できるようになりました。どのように私は変数を渡すことができないのですか?この問題を持つ他の誰のために

$cmdinput = escapeshellcmd('SuperpixelsFinal "D:/WebPages/TALIA ART/TALIA ART/uploaded_files/me.jpg" 400 100 "D:/WebPages/TALIA ART/TALIA ART/uploaded_files/clusteroutput.jpg"'); 
+0

あなたの引用符がありません。 $ executabletest = exec( "ImgProc \" $ imgtest1 \ "$ nosuppix $ noweight \" $ imgtest2 \ ""); ' – nogad

答えて

0

私は、個々の文字列のためにescapeshellargを使用して、そのような変数のみ使用して二重引用符でのexecを実行している必要があるとき、私はescapeshellcmd使っていたので、それは次のとおりです。 $ executabletest =幹部を( "SuperpixelsFinal $ imgtest1 $ nosuppix $ noweight $ imgtest2");

関連する問題