PHP e COM: errore apertura .doc

soulcanada

Nuovo Utente
17 Ott 2008
2
0
0
Salve a tutti,
posto questo messaggio per chiedere aiuto riguardo uno script da me creato che utilizza le COM per l'elaborazione dei file doc.

Mi spiego meglio: devo convertire un file .doc in un file .html e fin qui tutto bene; ho provato questo script in locale e funziona perfettamente.

Ho uplodato il suddetto script sul server aziendale (windows server 2003 r2 e IIS 6, PHP 5.2.6 e mysql 5) ma non funziona.

O meglio, mi viene restituito questo errore/orrore:
Fatal error: Uncaught exception 'com_exception' with message
'<b>Source:</b> Microsoft Word<br/>
<b>Description:</b> Comando fallito' in E:\Inetpub\wwwroot\****\***\classi\slide_circolari.class.php:58 Stack trace: #0 E:\Inetpub\wwwroot\****\***\classi\slide_circolari.class.php(58): variant->Open('E:/Inetpub/wwwr...') #1 E:\Inetpub\wwwroot\****\**\****\slide_circ\slideCircolari.php(32): SlideCircolari->creaHTMLFromDoc() #2 {main} thrown in E:\Inetpub\wwwroot\****\***\classi\slide_circolari.class.php on line 58.

Ora, se non ho capito male mi dice che non riesce ad aprire il file ma ho controllato permessi e settaggi e sono sicuro di aver fatto tutto giusto.

Vi prego, sono 6 ore che cerco per internet qualche aiuto ma non ho trovato un emerito tubo.

Confido in voi. Grazie mille.

Soulcanada
 
<?php
class SlideCircolari
{
private $word_object;

function __construct()
{
$circolari = array();
$this->word_object = new COM("word.application") or die("Unable to instanciate Word");
}

function estraiDatiCircolari()
{
$circolari_id = $this->circolari_id;

foreach($this->circolari_id as $id_circolare) :

$circolare = array();
$query = "select * from circolari where id='$id_circolare'";
$risultato = mysql_query($query) or die (mysql_error());

if(!$risultato)
return false;

$row = mysql_fetch_array($risultato);

$circolare["id"] = $row["ID"];
$circolare["data"] = $this->giraData($row["Data_circolare"]);
$circolare["tipo_circolare"] = $row["Tipo_Circolare"];
$circolare["protocollo"] = $row["Protocollo"];
$circolare["upload"] = $row["Upload"];

$circolari[] = $circolare;

endforeach;

return $this->circolari = $circolari;
}

public function creaHTMLFromDoc()
{

foreach($this->circolari as $circolare) :

$word = $this->word_object;

$file = "Il file che mi serve";

if(!file_exists($file))
echo "non esiste il file";
return;
endif;

if(!is_readable($file))
echo "non leggibile";
return;
endif;

if(!is_writable($file))
echo "non scrivibile";
return;
endif;

$word->Visible = 0;

$word->Documents->Open($file);

$word->Documents[1]->SaveAs("Indirizzo sul server",8);

$word->Quit();

unset($word);
endforeach;
}

public function eliminaCircolariPresenti()
{
$query = "select ID from circolari where Presente = '1' ";
$risultato = mysql_query($query) or die (mysql_error());

while($row = mysql_fetch_array($risultato)):
mysql_query("update circolari set Presente = '0' where ID = \"".$row["ID"]."\"");
$this->eliminaCircolareHTML($row["ID"]);
endwhile;
}

protected function eliminaCircolareHTML($circolare_id)
{
if(!file_exists($circolare_id.".html"))
return;
unlink($circolare_id.".html");
$this->eliminaFileECartelleHTML($circolare_id."_file");
}

public function segnaCircolariPresenti()
{
foreach($this->circolari as $circolare) :
$query = "update circolari set Presente = \"1\" where ID = \"".$circolare["id"]."\" ";
$risultato = mysql_query($query) or die (mysql_error());

if(!$risultato)
return;

endforeach;
}

protected function eliminaFileECartelleHTML($dir)
{
if($objs = @glob($dir."/*")) :
foreach($objs as $obj) :
@is_dir($obj)? eliminaFileECartelleHTML($obj) : @unlink($obj);
endforeach;
endif;

@rmdir($dir);
}

protected function giraData($data)
{
$data = explode("-", $data);
$nuova_data = $data[2]."/".$data[1]."/".$data[0];

return $nuova_data;
}

}
?>

Questa è la classe...spero riusciate a capire il mio problema...
 
Ultima modifica:

Discussioni simili