Errore "move_uploaded_file()"

di il
2 risposte

Errore "move_uploaded_file()"

Ciao a tutti, sono alle cozze non riesco a capire l'errore potete darmi qlc dritta? voglio usare il comando move_uploaded_file() per poter fare degli upload dal mio sito di file pdf e salvarli in una cartella specifica, ma non capisco il perchè mi da errore, e non riesco a capire ………… aiuto!!!

Utilizzo il protocollo https://, potrebbe essere questo il problema????

vi posto il codice:

<?php 

// If submit button is clicked
     if (isset($_POST['submit']))
     {
     // get name from the form when submitted
     $name = $_POST['name'];    

     if (isset($_FILES['pdf_file']['name']))
     {
     // If the ‘pdf_file’ field has an attachment
      $file_name = $_FILES['pdf_file']['name'];
      $file_tmp = $_FILES['pdf_file']['tmp_name'];
      
      // Move the uploaded pdf file into the pdf folder
      move_uploaded_file($file_tmp,"./pdf/".$file_name);
      // Insert the submitted data from the form into the table
      $insertquery =
      "INSERT INTO pdf_data(username,filename) VALUES('$name','$file_name')";
      
      // Execute insert query
      $iquery = mysqli_query($con, $insertquery);

       if ($iquery)
      {       

?>

l'errore è questo:

Warning: move_uploaded_file(./pdf/xxx.pdf): failed to open stream: No such file or directory in D:\inetpub\webs\xxxxx\demo\archivio-1.php on line 545

Warning: move_uploaded_file(): Unable to move 'C:\PHPVersions\PHP74\uploadtemp\php4155.tmp' to './pdf/xxxx.pdf' in D:\inetpub\webs\xxxxx\demo\archivio-1.php on line 545

vi ringrazio in anticipo a chi mi può aiutare.

2 Risposte

  • Re: Errore "move_uploaded_file()"

    L'errore che si sta verificando indica che il file non è stato trovato nella directory specificata.

    Ci sono alcune cose che potresti provare a fare per risolvere questo problema:

    1. Assicurati che la cartella "pdf" esista nella directory corretta e che sia scrivibile.
    2. Verifica che il percorso specificato sia corretto e che sia nella radice del sito web.
    3. Assicurati che il file caricato sia un file PDF e che sia stato caricato correttamente.
    4. Verifica che il nome del file non contenga spazi o caratteri speciali.

    Inoltre, potresti voler aggiungere alcuni controlli di sicurezza per evitare problemi di sicurezza, ad esempio controllare che il tipo di file sia effettivamente un PDF.

    Per fare ciò, puoi utilizzare la funzione PHP "pathinfo" per ottenere l'estensione del file e confrontarla con "pdf":

    
    
    
    if (isset($_FILES['pdf_file']['name']))
    {
        $file_name = $_FILES['pdf_file']['name'];
        $file_tmp = $_FILES['pdf_file']['tmp_name'];
        $file_ext = strtolower(pathinfo($file_name,PATHINFO_EXTENSION));
    
        // Controllo che il file sia un PDF
        if($file_ext !== "pdf") {
            echo "Errore: Sono consentiti solo file PDF";
        } else {
            // Move the uploaded pdf file into the pdf folder
            move_uploaded_file($file_tmp,"./pdf/".$file_name);
            // Insert the submitted data from the form into the table
            $insertquery = "INSERT INTO pdf_data(username,filename) VALUES('$name','$file_name')";
            // Execute insert query
            $iquery = mysqli_query($con, $insertquery);
            if ($iquery)
            { 
                echo "File caricato con successo"; 
            }
        }
    }
    
  • Re: Errore "move_uploaded_file()"

    Inoltre, potresti voler verificare che il nome del file caricato non contenga spazi o caratteri speciali, ad esempio utilizzando la funzione "preg_replace" per rimuoverli:

    
    
    $file_name = preg_replace("/[^a-zA-Z0-9\.]/", "", $_FILES['pdf_file']['name']);
    
Devi accedere o registrarti per scrivere nel forum
2 risposte