Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    PDF invio al Browser previa lettura

    Vi sottopongo il mio problema, Io copio sul server un PDF da un ftp, lo leggo, cancello il file, e invio la lettura al browser.

    Il problema è che non funziona la visualizzazione, non so se il problema sono gli headers oppure come viene letto il file.

    Attendo aiuto e vi ringrazio.


    Codice PHP:
    ........

    /* lettura file*/
    $fp fopen("$Consulenza""r+"); //usiamo b per leggere in modalità binaria
    $read fread($fpfilesize("$Consulenza")); // leggiamo
    fclose($fp); // chiudiamo

    unlink("$Consulenza"); // eliminiamo il file

    /**** inviamo il file al browser ****/
    header("Content-Type: application/pdf");
    header("Cache-Control: max_age=0");

    header("Content-Disposition: attachement; filename=\"$Consulenza\"");

    header("Content-Description: Download");
    header("Content-Length: ".strlen($read));
    echo 
    $read;    

    exit(
    0); // esce dallo script 
    Dov'è l'errore che non capisco, perchè talvolta va e talvolta no,
    da quando ho aggiunto questo header("Cache-Control: max_age=0"); qualcosa è migliorato ma non va quasi mai.

  2. #2
    Prova ad utilizzare solo il codice dell'esempio di http://www.php.net/header .

    Se funziona correttamente, inizia ad aggiungere un po' alla volta il codice aggiuntivo (ftp etc.) fino a che smette di funzionare. In questo modo sarà facile individuare il problema.

    P.S.
    Tieni conto che il tuo codice NON contiene alcuna gestione degli errori. Se lo script genera un notice, warning etc. questi finiranno nello stream PDF, corrompendolo.

  3. #3
    Ma dici che il problema sta negli headers o nella lettura del file?

    Il trasferimento ftp funziona perfettamente, se elimino il comando di cancellazione del file e me lo scarico funziona perfettamente.

  4. #4
    Adesso provo a visualizzarlo senza lettura, un passo per volta.

  5. #5
    Ti suggerisco di utilizzare http://www.php.net/readfile (o funzione equivalente) ed di effettuare l'unlink() dopo aver inviato i dati al browser.

    Nel tuo caso, è inutile caricare in memoria il file. Inoltre una azione del genere potrebbe far bloccare l'esecuzione del PHP (vedi http://www.php.net/manual/en/ini.cor...i.memory-limit)

  6. #6
    Avendo un file sul server ad esempio con questo codice

    Codice PHP:
    header('Content-Type: application/pdf');

    header("Cache-Control: no-cache");

    header('Content-Disposition: attachment; filename=es041104.pdf');

    readfile ('es041104.pdf'); 
    Su firefox mi parte il donwload e posso decidere cosa fare e funziona perfettamente.

    Su IE mi dà impossibile scaricare.

    Non riesco a venirne fuori.

  7. #7
    Codice PHP:

    header
    ('Content-type: application/pdf');
    header("Pragma: public");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header('Content-Length: ' filesize('es041104.pdf'));

    readfile ('es041104.pdf'); 
    Con questo va anche su explorer adesso il problema resta il resto.

  8. #8
    Togli la parte fopen()/fclose() del tuo codice, sposta l'unlink() dopo readfile() e dovrebbe essere a posto.

  9. #9
    Grazie per i consigli, quello lo avevo già fatto, e il problema è che con questo header

    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");

    Va perfettamente su IE ma su firefox non va.


    Adesso provo con la selezione in base al browser.

  10. #10
    Codice PHP:
    /**** inviamo il file al browser ****/
    header('Content-type: application/pdf');

    if (
    ereg("MSIE"$_SERVER['HTTP_USER_AGENT'])) { header("Cache-Control: must-revalidate, post-check=0, pre-check=0");};

    header('Content-Length: ' filesize($Consulenza));
    readfile ($Consulenza);


    unlink($Consulenza); // eliminiamo il file

    exit(0); // esce dallo script 
    Così funziona sia su Explorer che su Firefox.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.