Visualizzazione dei risultati da 1 a 5 su 5

Discussione: allegato pdf

  1. #1

    allegato pdf

    ciao a tutti, ho bisogno del vostro inestimabile aiuto:

    ho uno script che crea un file pdf e lo spara all'idirizzo email
    immesso nel form:

    funziona tutto regolarmente, il file viene creato ed inviato
    come allegato ma all'apertura con acrobat mi viene dato un errore
    che dice che il file potrebbe non essere stato codificato correttamente....
    se invece di inviare il file all'indirizzo email lo creo sul server si apre benissimo.

    di seguito lo script:

    <?

    require('fpdf.php');
    $pdf=new FPDF();
    $pdf->AddPage();
    $pdf->SetFont('Arial','b',12);
    $pdf->Cell(160,10,'prova file pdf');
    $nomefile = "nomefile.pdf";

    if(!isset($_POST)) $_POST = $HTTP_POST_VARS;

    $Destinatario = trim($_POST["Destinatario"]);
    $Soggetto = trim(stripslashes($_POST["Soggetto"]));
    $Contenuto = trim(stripslashes($_POST["Contenuto"]));

    $file_type = filetype($nomefile);
    $file_size = filesize($nomefile);

    $boundary = md5(uniqid(microtime()));

    $file = @fopen($nomefile, "r");
    $contents = @fread($file, $file_size);
    $encoded_attach = chunk_split(base64_encode($pdf->Output($nomefile,s)));
    @fclose($file);

    $mail_headers .= "MIME-version: 1.0\n";
    $mail_headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"";
    $mail_headers .= "X-attachments: $nomefile\n";

    $mail_body = "--$boundary\n";
    $mail_body .= "Content-Type: text/plain; charset=us-ascii\n";
    $mail_body .= "Content-Transfer-Encoding: 7bit\n\n";
    $mail_body .= "$Contenuto\n\n";
    $mail_body .= "--$boundary\n";
    $mail_body .= "Content-type: $file_type; name=\"$nomefile\"\n";
    $mail_body .= "Content-Transfer-Encoding: base64\n";
    $mail_body .= "$encoded_attach\n";
    $mail_body .= "--$boundary--\n";

    if(@mail($Destinatario, $Soggetto, $mail_body, $mail_headers)) { /

    echo "La mail è stata inoltrata con successo.";


    } else {

    echo "Si sono verificati dei problemi nell'invio della mail.";

    }


    ?>

    Qualcuno sa perchè?

    Grazie in anticipo

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    867
    Non ho letto approfonditamente, pero' ti faccio un'osservazione sulla quale puoi lavorare, queste due righe di codice:
    Codice PHP:
    $file_type filetype($nomefile);
    $file_size filesize($nomefile); 
    cercano di calcolare tipo e nome di un file che non esiste, infatti l'istruzione:
    Codice PHP:
    $pdf->Output($nomefile,s
    viene eseguita dopo.....

    Non dico che il resto sia giusto.... ma di sicuro questo e' sbagliato.... controlla che oltre a questa non ci siano altre incongruenze di questo tipo...

    No pvt per sollecitare risposte, grazie.

  3. #3
    azz hai ragione!

    per adesso ti ringrazio, ci devo lavorare un pò sopra

  4. #4
    risolto

    praticamente ho sistemato lo script che era errato ma il risultato era lo stesso e cioè il file che avevo in remoto mi si apriva benissimo mentre quello che la funzione mail() mandava al mio indirizzo acrobat me lo dava corrotto:

    ho semplicemente aggiunto \r qui:

    $mail_body .= "Content-Transfer-Encoding: base64\r\n";

    e ora funziona benissimo

  5. #5
    ho provato a utilizzare questo codice...
    quando invio il file pdf generato su una casella di posta gmail e la visualizzo dal web, il documento si apre e si vede alla perfezione.
    invece aprendo l'email da outlook, l'attacment non si vede e nel corpo dell'email ci sono caratteri strani tipo:

    %PDF-1.3
    3 0 obj
    <</Type /Page
    /Parent 1 0 R
    /Resources 2 0 R
    /Contents 4 0 R>>


    qualcuno può aiutarmi???
    grazie anticipatamente

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.