[PHP] Problema upload file (multiplo)

ciccioroky

Nuovo Utente
31 Lug 2012
25
0
1
Ciao ragazzi,
ho provato a trovare soluzioni in rete e sul form ma non risolvo il mio problema.
praticamente sto creando una galleria fotografica divisa per album.

ho due pagine:
- nella prima creo l'album dandogli un nome e un'immagine di copertina
- nella seconda pagina entro dentro l'album e inserisco le foto con un caricamento multiplo.

quando creo l'album nella prima pagina, creo una cartella sul server con permessi 777 e tutto è ok. l'immagine di copertina viene uploadata.

il problema viene quando entro nell'album (apro la seconda pagina) e provo a caricare le foto.
le foto non vengono caricate.

i percorsi sono corretti e i permessi sono a 777. perchè non mi carica?
utilizzo lo stesso script che mi fa caricare l'immagine di copertina quando creo l'album solo che essendo un caricamento multiplo lo ciclo.

il codice è corretto.

secondo me i problemi sono di permessi sulla cartella.
Appena la creo e setto a 777 funziona. se devo caricare successivamente immagini nella cartella non va.

aiutatemi perchè non ne vengo a capo...

vi posto il codice

questo è il codice che recupera l'array dei file e cicla il caricamento:
PHP:
$total = count($_FILES['copertina_album']['name']);
        
        for($i=0; $i<$total; $i++) {
            
            uploadIMG($path, $_FILES['copertina_album'][$i]);
}

questa è la funzione di caricamento
PHP:
function uploadIMG($target_dir, $fileName) {

    $target_file = $target_dir . basename($fileName["name"]);
    $uploadOk = 1;
    $imageFileType = pathinfo($target_file, PATHINFO_EXTENSION);
    
    // Check if image file is a actual image or fake image
    $check = getimagesize($fileName["tmp_name"]);
        
    if($check !== false) {
        $uploadOk = 1;
    } else {
        $uploadOk = 0;
    }   
    

    // Check if file already exists
    if (file_exists($target_file)) {
        $uploadOk = 0;
    }
    
    // Check file size
    if ($fileName["size"] > 50000000000) {
        $uploadOk = 0;
    }
    
    // Allow certain file formats
    if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
    && $imageFileType != "gif" ) {
        $uploadOk = 0;
    }
    
    // Check if $uploadOk is set to 0 by an error
    if ($uploadOk != 0) {
        
        if (!move_uploaded_file($fileName["tmp_name"], $target_file)) {
            echo "Errore caricamento immagine";
        }
        
    }
    
}
grazie
 
ciao
attento, $_FILES se usi qualcosa del genere scritto così o generato dinamicamente
HTML:
<input name[0]="copertina_album" type="file" />
<input name[1]="copertina_album" type="file" />
<!--ecc-->
è in questo caso un array di array di array

metti un var_dump e verifica provando a cercare di caricare due immagini per vedere come è formato esattamente l'array
PHP:
//.....
echo "<pre>";//serve per visualizzare meglio il var_dump
var_dump($_FILES);
echo "</pre>";
$total = count($_FILES['copertina_album']['name']);
//.....
dal count che usi la fortmattazione sembrerebbe essere
$_FILES[xy]['copertina_album']['name'] dove xy da 0 a quanti file hai riempito-1, se è così $_FILES['copertina_album'][$i] non esiste
$_FILES o è
$_FILES[xy]['copertina_album']['name']
o
$_FILES['copertina_album']['name'][xy]
che sono due cose diverse
 

Discussioni simili