2012-05-21 16 views
9

Quando eseguo il codice colpo:Errore irreversibile: eccezione non rilevata 'com_exception' con messaggio. durante la conversione ppt in jpg

/*** PPT to Image conversion ***/ 
$ppt_file = 'E:\wamp\www\temp/a.pptx'; 
$app = new COM("PowerPoint.application") or die("Unable to instantiate PowerPoint"); 
$app->Visible = true; 
$app->Presentations->Open($ppt_file); 
$app->Presentations[1]->SaveAs("E:/tmp/outdir",18); 
$app->Presentations[1]->Close(); 
$app->Quit(); 
$app = null; 

Mi dà una sola eccezione:

Fatal error: Uncaught exception 'com_exception' with message 'Source: Microsoft Office PowerPoint 2007
Description: PowerPoint could not open the file.' in E:\wamp\www\temp\video_conversion.php:107 Stack trace: #0 E:\wamp\www\temp\video_conversion.php(107): variant->Open('E:\wamp\www\tem...') #1 {main} thrown in E:\wamp\www\temp\video_conversion.php on line 107

Non sono in grado di capire qual è il problema.

+0

Avete escluso un problema di autorizzazione aprendo il direttamente dal codice? –

+0

Hai trovato una soluzione a questo? Sto avendo un problema simile. –

risposta

4

Questo tipo di problema è dovuto ai seguenti fattori.

  1. php.ini Opzioni
  2. autorizzazione della cartella
  3. permettono aperta non è abilitato nel server
  4. consentito per le dimensioni di upload
3

All'interno del vostro errore, è visualizzato il seguente messaggio: PowerPoint could not open the file.' in E:\wamp\www\temp\video_conversion.php:107

fa l'utente PHP dispone di autorizzazioni per il file E:\wamp\www\temp/a.pptx?

Prova a correggere le barre: E:\wamp\www\temp\a.pptx come / normalmente si riferisce a un'opzione o argomento.

Alla fine della giornata, sembra essere un errore di autorizzazione, un problema di posizione o simile che impedisce l'accesso a tale file. Puoi aprire il file con fopen o file_get_contents?

+0

La barra è solo un refuso. Lemmy prova con il file per ottenere contenuti e dirti cosa succede. –

+0

Hai fortuna con file_get_contents? –

2

Prova questa con classe COM: classe

COM Riferimento: - http://us2.php.net/manual/en/class.com.php

<html> 
<head> 
<title>ShotDev.Com Tutorial</title> 
</head> 
<body> 
<? 
    $ppApp = new COM("PowerPoint.Application"); 
    $ppApp->Visible = True; 

    $strPath = realpath(basename(getenv($_SERVER["SCRIPT_NAME"]))); // C:/AppServ/www/myphp 

    $ppName = "MySlides.ppt"; 
    $FileName = "MyPP"; 

    //*** Open Document ***// 
    $ppApp->Presentations->Open(realpath($ppName)); 

    //*** Save Document ***// 
    $ppApp->ActivePresentation->SaveAs($strPath."/".$FileName,17); //'*** 18=PNG, 19=BMP **' 
    //$ppApp->ActivePresentation->SaveAs(realpath($FileName),17); 

    $ppApp->Quit; 
    $ppApp = null; 
?> 
PowerPoint Created to Folder <b><?=$FileName?></b> 
</body> 
</html> 

Oppure provate questo:

$powerpnt = new COM("powerpoint.application") or die("Unable to instantiate Powerpoint"); 

$presentation = $powerpnt->Presentations->Open(realpath($file), false, false, false) or die("Unable to open presentation"); 

foreach($presentation->Slides as $slide) 

{ 

    $slideName = "Slide_" . $slide->SlideNumber; 

    $exportFolder = realpath($uploadsFolder); 

    $slide->Export($exportFolder."\\".$slideName.".jpg", "jpg", "600", "400"); 

} 

$powerpnt->quit(); 
Problemi correlati