• User

    Spostare file

    Salve, ho incontrato un nuovo problema con le funzioni php!

    Semplicemente mi servirebbe spostare dei file, che di default la libreria fpdf mi crea nella cartella "./", nella cartella "./PDF"

    quale funzione o libreria posso utilizzare per fare questo?
    Perchè "move_uploaded_file" funziona solo su file inviati tramite protocollo HTTP, e quindi non per file direttamente creati!

    Grazie...

    Ecco il codice:

    "index.html"
    qui si prendono i dati da inserire poi nel file .pdf che viene creato!
    [HTML]
    <HEAD>
    <TITLE> Pagina di prova di un form di invio dati </TITLE>
    </HEAD>

    <BODY>
    MODULO DA COMPILARE PER LA RICHIESTA:
    <FORM ACTION = "pdf.php" METHOD = "post">
    Nome Azienda: <BR>
    <INPUT TYPE = "text" name = "Azienda" SIZE="50"> <BR>
    Numero di dipendenti: <BR>
    <INPUT TYPE = "text" NAME = "NumDipendenti" SIZE="10"> <BR>
    Sede: <BR>
    <INPUT TYPE = "text" NAME = "Sede" SIZE="50"> <BR>
    <BR>
    TERMINATA LA COMPILAZIONE USARE IL PULSANTE QUI SOTTO PER L'INVIO! <BR>
    <INPUT TYPE = "submit" NAME = "submit" VALUE = "Invia">
    </BODY>
    [/HTML]

    "pdf.php"
    in questo file c'è la creazione del file, e sulla fine il salvataggio del suo nome su un file di testo
    [PHP]
    <?php
    require('fpdf16/fpdf.php');

    $Azienda = $_POST["Azienda"];
    $NumDipendanti = $_POST["NumDipendenti"];
    $Sede = $_POST["Sede"];
    
    $pdf_doc = new FPDF('P','mm','A4');  
    
    $pdf_doc->AddPage();
    
    $pdf_doc->SetFont('Courier', 'B', 24);
    $pdf_doc->Cell(0,20,"$Azienda", 'B');
    
    $pdf_doc->SetFont('Courier', '', 10);
    $pdf_doc->Ln();
    
    $pdf_doc->Write(10,"$NumDipendenti");
    $pdf_doc->Ln(7.0);
    
    $pdf_doc->Write(10, "$Sede");
    $pdf_doc->Ln(7.0);
    
    
    $pdf_doc->Output("$Azienda.pdf", 'F');
    
    $fp = fopen("Moduli", 'a') or die("Can't open file");
        $azienda00 = "$Azienda\n";
        fwrite($fp, $azienda00);
    fclose($fp);
    
    header("location: moduli.php");
    

    ?>
    [/PHP]


  • Consiglio Direttivo

    Ciao Endorama e benvenuto nel Forum GT 😉

    Hai provato a scriverlo così?
    [php]$pdf_doc->Output("PDF/$Azienda.pdf", 'F');[/php]Cito dal sito fpdf.org

    [cut]*
    dest* Destinazione dove mandare il documento. Può essere specificato uno dei seguenti valori:
    [cut]

    • F: salva il file in locale con il nome dato con name.

    [cut]
    Facci sapere, potrebbe essere utile anche ad altri :ciauz:


  • User

    Umh...questa soluzione sembra funzionare...
    presenta però un piccolo problema...

    Ossia crea una copia del file. Una me la salva in "PDF/name.pdf" e l'altra in "./name.pdf"

    Sulla documentazione non viene specificato nulla di simile, quindi si può supporre che sia un mio errore...Eppure il codice è talmente semplice da farmi stupire...L'ho controllato, e la stringa è uguale a quella che tu hai postato...

    Quindi se qualcun altro può provare e verificare se succede la stessa cosa che a me mi fa un favore...


  • User Attivo

    Ritornando a quello che hai chiesto, per spostare un file con php prima lo copi con copy() e poi cancelli il vecchio file con unlink()

    :gthi:


  • User

    Perfetto!! grazie a tutti...la libreria fpdf si comporta come deve, ho provato ieri e non mi dava più quel problema...

    Grazie a tutti è stato un aiuto preziosissimo!