2017-05-10 1 views
0

Ich habe Probleme beim Ausführen der "Exec" -Funktion in meiner PHP-Website. Ich bin in der Lage, es mehrmals mit einer ausführbaren Datei auszuführen, die nur ein variables Argument aufnimmt und einige Testnachrichten zurückgibt. Wenn ich jedoch eine ausführbare Datei verwende, die eine Bildverarbeitung vornimmt, bei der ich ein Bild von der Website übergeben möchte, das ein Benutzer als Argument hochlädt, scheint die ausführbare Datei überhaupt nicht ausgeführt zu werden. Ich habe sogar einige Cout-Befehle in der ausführbaren Datei, um sicherzustellen, dass sie ausgeführt werden, aber diese werden nicht auf der Website angezeigt. Also ich denke, dass der PHP die ausführbare Datei aus irgendeinem Grund nicht ausführen kann? Ich bin in der Lage es gut von meinem Schreibtisch zu laufen ...PHP-Website nicht ausgeführt exec-Funktion beim Übergeben von Bild als Argument

Hier ist ein Beispiel für den Code, der nicht auf meiner PHP-Website funktioniert:

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

Gibt es eine Möglichkeit, zu debuggen oder eine Fehlermeldung angezeigt Ausgabe von der Exec-Funktion? Gibt es etwas, das ich vermisse, wenn ich ein Bild an die ausführbare Datei übergebe? Die ausführbare Datei verwendet mehrere DLL-Dateien, die sich im selben Ordner wie die ausführbare Datei befinden. Müssen sie aus irgendeinem Grund zusammen verpackt werden? Ich entschuldige mich, aber ich weiß wirklich nicht, was noch zu testen ist ...

*** Edit: Ich bin jetzt in der Lage, es zum Laufen zu bekommen, wenn ich den ganzen Code in der escapeshellcmd selbst schreibe ... Wie kommt es, dass ich die Variablen nicht einfach weitergeben kann? $ executabletest = exec: nur mit Variablen wie so

$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

Ihre fehlenden Zitate. '$ extabletest = exec (" ImgProc \ "$ imgtest1 \" $ nosuppix $ noweight \ "$ imgtest2 \" ");' – nogad

Antwort

0

Für jemand anderes dieses Problem haben, ist es, weil ich wurde mit escapeshellcmd, wenn ich für jede einzelne Saite escapeshellarg verwendet haben sollte und dann die exec mit doppelten Anführungszeichen laufen ("SuperpixelsFinal $ imgtest1 $ nosuppix $ noweight $ imgtest2");

Verwandte Themen