Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

problema eseguzione shell tramite funzione exec()

11 views
Skip to first unread message

Jacopo Daeli

unread,
Jul 30, 2009, 6:14:00 PM7/30/09
to
Salve a tutti,
ho un problema che spero possiate risolvermi.

In pratica sto realizzando un sito web per l'universit� in XML, XSL,
JS e PHP.

Il php lo uso per chiamare tramite la funzione exec() una shell unix
che avvia l'applicativo java Apache Fop versione 0.95, alla quale do
in input un file xml, un file xsl e lei mi genera il file pdf.

Qui sotto allego esempio di comando che dato tramite terminale
funziona correttamente:
/Library/Java/Home/fop/fop -xml /Users/jeky/Sites/iaacs/doc/cv/jd.xml -
xsl /Users/jeky/Sites/iaacs/xsl/xsl-fo/cv.xsl -pdf /Users/jeky/Sites/
iaacs/pdf/1248987819.pdf

Il comando sopra riportato dato da terminale mi genera correttamente
il file PDF chiamato 1248987819.pdf

Lo stesso comando eseguito invece tramite funzione exec() genera si il
file PDF, ma genera un PDF illeggibile, ovvero tale che l'applicativo
per leggere i PDF da il seguente errore:
"Impossibile aprire il documento. � possibile che sia danneggiato o in
un formato non riconosciuto da Anteprima."

Non riesco a capire come mai, l'unica cosa che mi viene in mente � che
per una questione di permessi exec() non riesce a richiamare tutte le
librerie corrette per la corretta generazione del file PDF.

COme posso risolvere il problema?
Qualche aiuto?

Allego anche il codice della mia pagina PHP:
<?php
# PDF CREATOR / SHELL SCRIPT EXE

class req {

var $xml;
var $xsl;
var $folder;
var $pdf;

function req($ml, $sl, $f) {
$this->xml=$ml;
$this->xsl=$sl;
$this->folder=$f;
}

function start() {

$this->pdf=time() . ".pdf";

exec("/Library/Java/Home/fop/fop -xml /Users/jeky/Sites/iaacs/
doc/" . $this->folder . "/" . $this->xml . " -xsl /Users/jeky/Sites/
iaacs/xsl/xsl-fo/" . $this->xsl . " -pdf /Users/jeky/Sites/iaacs/
pdf/" . $this->pdf);

}

function close() {
echo "<script>location.href='http://localhost/iaacs/pdf/" . $this-
>pdf . "';</script>";
}

}


$obj=new req($_GET['xmlSrc'], $_GET['xslSrc'], $_GET['folder']);
$obj->start();
$obj->close();

?>

Grazie in anticipo. Jacopo Daeli

0 new messages