Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Upload images

  1. #1

    Upload images

    Ciao, sto provando a caricare immagini da un form ma nonostante abbia impostato correttamente (a mio avviso) form e controlli continuo ad avere un errore quando vado a muovere il file caricato nell'apposita cartella. Il problema viene sollevato nella seguente linea di codice:

    Codice PHP:
    if (move_uploaded_file($userfile_tmp$uploaddir $userfile_name)) {                          
    echo 
    'File inviato con successo.';            
    }else{                            
    echo 
    'Upload NON valido!';             

    I warning sono i seguenti:
    codice HTML:
    Warning: move_uploaded_file(/uploads/cf.jpg): failed to open stream: No such file or directory in /Applications/XAMPP/xamppfiles/htdocs/form-1/upload.php on line 57
    
    Warning: move_uploaded_file(): Unable to move '/Applications/XAMPP/xamppfiles/temp/php6gCLhV' to '/uploads/cf.jpg' in /Applications/XAMPP/xamppfiles/htdocs/form-1/upload.php on line 57
    Upload NON valido!
    Sapete dirmi cosa potrebbe essere?
    Grazie

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Assicurati che la cartella uploads sia scrivibile e soprattutto che si chiami realmente uploads, magari quando l'hai creata hai commesso un errore di battitura.
    Verifica anche che sia nella posizione che gli stai indicando.

  3. #3
    Ho verificato che sia scrivibile e che si chiami uploads. La posizione è corretta ed ho anche verificato stampandola. Ti invio lo script completo del codice:

    Codice PHP:
    <?php        
    include("auth.php");        
    require(
    'db.php');            // per prima cosa verifico che il file sia stato effettivamente caricato            
    if (!isset($_FILES['userfile']) || !is_uploaded_file($_FILES['userfile']['tmp_name'])) {              
    echo 
    'Non hai inviato nessun file...';              
    exit;                
    }
    //percorso della cartella dove mettere i file caricati dagli utenti            
    $uploaddir "form-1/uploads/";            
    echo 
    getcwd();
    $image_binary fread(fopen($_FILES["userfile"]["tmp_name"], "r"), filesize($_FILES["userfile"]["tmp_name"]));            
    $encoded_image base64_decode($image_binary);
    //Recupero il percorso temporaneo del file            
    $userfile_tmp $_FILES['userfile']['tmp_name'];
    //recupero il nome originale del file caricato            
    $userfile_name $_FILES['userfile']['name'];
    //copio il file dalla sua posizione temporanea alla mia cartella upload            
    if (move_uploaded_file($userfile_tmp$uploaddir $userfile_name)) {              
    //Se l'operazione è andata a buon fine...                
    echo 'File inviato con successo.';            
    }else{              
    //Se l'operazione è fallita...              
    echo 'Upload NON valido!';             
    }
    E questi sono gli errori che genera:

    codice HTML:
    /Applications/XAMPP/xamppfiles/htdocs/form-1
    Warning: move_uploaded_file(form-1/uploads/cf.jpg): failed to open stream: No such file or directory in /Applications/XAMPP/xamppfiles/htdocs/form-1/upload.php on line 60
    
    Warning: move_uploaded_file(): Unable to move '/Applications/XAMPP/xamppfiles/temp/phpjUdgTy' to 'form-1/uploads/cf.jpg' in /Applications/XAMPP/xamppfiles/htdocs/form-1/upload.php on line 60
    Upload NON valido!

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Il messaggio è chiaro, non trova la cartella di destinazione, adesso "form-1".
    Fai casino coi percorsi.

    upload.php sta dentro la cartella form-1, quindi se metti
    $uploaddir = "form-1/uploads/";

    move_uploaded_file() userà il percorso
    /Applications/XAMPP/xamppfiles/htdocs/form-1/form-1/uploads/

    Come vedi c'è 2 volte form-1, invece dovrebbe esserci solo una volta.
    Stai usando un percorso relativo, ed è relativo alla cartella in cui si trova lo script in esecuzione, quindi parti dalla cartella form-1

    Nel primo caso invece presumibilmente usavi
    $uploaddir = "/uploads/";

    quindi move_uploaded_file() usava il percorso
    /Applications/XAMPP/xamppfiles/htdocs/uploads/

    senza form-1, perché lo slash iniziale / gli dice di partire dalla root, che è htdocs e lì cercare la cartella uploads.

    Soluzione:
    $uploaddir = "uploads/";

    senza lo slash iniziale.
    Ultima modifica di Alhazred; 22-05-2017 a 23:34

Tag per questa discussione

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 © 2024 vBulletin Solutions, Inc. All rights reserved.