Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Problema upload file

  1. #1

    Problema upload file

    Buon pomeriggio,
    ho una pagina che riceve da un form un file da caricare sul server. Il problema è che la funzione move_uploaded_file mi restituisce sempre false e non riesco quindi a salvare il file nella directory che voglio.
    Riporto il codice php:
    Codice PHP:
    <?php
        session_start
    ();
        require_once(
    'sec_functions.php');
        
    controllo('org');
        
    $id = (int)$_SESSION['id'];
        require_once(
    'mysqlconn.php');
        
    mysql_select_db($database$utenti);
        
    $ev = (int)$_POST['evento'];
        
    $directory "/Immagini/Eventi/".$ev."/";
        
    $destinazione $directory."anteprima.png";
        
    $imageType $_FILES["filetoUpload"]["type"];
        echo 
    $imageType;
        if(
    $imageType == "image/png"){
            
    chmod($_FILES["filetoUpload"]["tmp_name"], 0777);
            if(
    move_uploaded_file($_FILES["filetoUpload"]["tmp_name"], $destinazione)){
                
    header('Location: caricafile.php?stat=success');
            }else{
                
    header('Location: caricafile.php?ev='.$ev.'&error=2');
            }    }else{
            
    header('Location: caricafile.php?ev='.$ev.'&error=1');
        }
    ?>
    Quale è il problema?

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Ciao, intanto non so se per debug o cosa ma se metti un echo prima di un Header() sicuramente andrà in errore.
    Per il resto prova a visualizzare cosa genere il path $destinazione e vedi se corretto. Controlla che siano corretti tutti gli slash(/) sul path di destinazione e che la cartella di destinazione esista e che abbia i permessi corretti.
    $directory, prova a dargli un path intero piuttosto che cosi'.
    I permessi 777 al file tmp non servono, se mai sarebbero da dare alla cartella di destinazione se dovesse servire.

  3. #3
    Questi sono gli errori che mi vengono restituiti:

    Warning: move_uploaded_file(/Immagini/Eventi/33/anteprima.png): failed to open stream: No such file or directory in /var/www/html/upload.php on line 15

    Warning: move_uploaded_file(): Unable to move '/tmp/phpDnWEj6' to '/Immagini/Eventi/33/anteprima.png' in /var/www/html/upload.php on line 15

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Il primo ti dice che nella cartella indicata non c'è il file anteprima.png, le cose sono 2: o il file non c'è davvero, oppure il percorso che hai indicato non è quello corretto.

    Il secondo ti dice che non può spostare nella cartella indicata il file di cui stai facendo l'upload, qui le alternative sono: o la cartella indicata non esiste (hai sbagliato ad indicare il percorso) oppure non hai i permessi per scrivere dentro la cartella.

  5. #5
    La directory /Immagini/Eventi/33/anteprima.png è la destinazione, quindi dovrebbe accettarla anche se il file anteprima.png non esiste essendo il nome che deve avere il file che sposto.
    Per quanto riguarda i permessi come faccio a verificare se sono apposto?

  6. #6
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Immagini è una sottocartella del percorso dove risiede lo script?
    Se si, mi sa che devi togliere lo slash iniziale

  7. #7
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Devi anche essere sicuro che il percorso sia corretto e che le maiuscole siano rispettate, sei su Linux, file e cartelle sono case-sensitive.
    Per i permessi impostati sulla cartella, dovrebbe essere sufficiente andare in Eventi, dare un ls da console e vedere di fianco a 33 che permessi ti indica.
    Per provare cabia i permessi e mettici 777, se neanche così funziona, molto probabilmente il percorso che passi non è corretto.
    Dove sta la cartella Immagini rispetto alla root del sito? Lì dentro o in una sottocartella?

  8. #8
    La cartella Immagini e tutte le suo sottocartelle hanno permessi 775 e il server mi nega il permesso di impostarli a 777.
    Ho tolto lo slash iniziale davanti a Immagini ed ora funziona.
    Grazie a tutti per la pazienza e l'aiuto fornito!

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.