Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Script per upload files

    Salve,
    utilizzo questo script per caricare 2 immagini:

    Codice PHP:
    if(isset($_FILES['1']['name'])  && $_FILES['1']['name']!=NULL){
                        
    $estensione substr($_FILES['1']['name'],-4);
                        
    $target_path $target_path basenamemd5($_FILES['1']['name'].date('H:m:s-d/m/Y')).stristr($estensione,'.') ); 
                        
    $Foto1 md5($_FILES['1']['name'].date('H:m:s-d/m/Y')).stristr($estensione,'.');
                        if(
    move_uploaded_file($_FILES['1']['tmp_name'], $target_path)) {
                            echo 
    "La foto ".  basenamemd5($_FILES['1']['name'].date('H:m:s-d/m/Y')).stristr($estensione,'.') )." è stata caricata.
    "
    ;
                        } else{echo 
    "Si è verificato un problema durante l'upload della foto.";}
                    } else {
                        
    $query $this->db->get_where('prodotti', array('idProdotto' => $this->uri->segment(3)));
                        foreach (
    $query->result() as $row){
                            echo 
    '> Foto 1 vuota!
    '
    ;
                            
    $Foto1=$query[0]->Foto1;
                        }
                    }
    if(isset(
    $_FILES['2']['name'])  && $_FILES['2']['name']!=NULL){
                        
    $estensione substr($_FILES['2']['name'],-4);
                        
    $target_path $target_path basenamemd5($_FILES['1']['name'].date('H:m:s-d/m/Y')).stristr($estensione,'.') ); 
                        
    $Foto2 md5($_FILES['2']['name'].date('H:m:s-d/m/Y')).stristr($estensione,'.');
                        if(
    move_uploaded_file($_FILES['2']['tmp_name'], $target_path)) {
                            echo 
    "La foto ".  basenamemd5($_FILES['2']['name'].date('H:m:s-d/m/Y')).stristr($estensione,'.') )." è stata caricata.
    "
    ;
                        } else{echo 
    "Si è verificato un problema durante l'upload della foto.";}
                    } else {
                        
    $query $this->db->get_where('prodotti', array('idProdotto' => $this->uri->segment(3)));
                        foreach (
    $query->result() as $row){
                            echo 
    '> Foto 2 vuota!
    '
    ;
                            
    $Foto2=$query[0]->Foto2;
                        }
                    } 
    Lo script mi carica SOLO il primo file!!! Aiutatemi :S
    Mantisworks.net - Soluzioni dal web per il web!
    SEO, SEM, Software, Siti internet, Grafica e Multimedia

  2. #2
    Fai cosi:

    Codice PHP:
    foreach ($_FILES AS $file) {
     
    // tutto il tuo codice

    Oppure, se i file sono solo 2, puoi fare come segue:
    Codice PHP:
    if(isset($_FILES['nome_campo_file1']['name'])  && $_FILES['nome_campo_file1']['name']!=NULL){
     
    // tutto il tuo codice
    }

    if(isset(
    $_FILES['nome_campo_file2']['name'])  && $_FILES['nome_campo_file2']['name']!=NULL){
     
    // tutto il tuo codice
    }
    // eccetera 
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  3. #3
    Ah... un piccolo appunto.
    Il controllo dell'avvenuto upload del file, ti consiglio di farlo sfruttando sempre l'array $_FILES.

    Codice PHP:
    if ($_FILES['nome_campo_file1']['error'] == 0) {
    // nessun errore di upload- esegui il codice

    Con uno switch nell'ELSE puoi anche andare a gestire dei messaggi di errore personalizzati e rendere la tua applicazione più user-friendly.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  4. #4
    Se ci fai caso, sfrutto già questa struttura:

    Codice PHP:
    if(isset($_FILES['nome_campo_file1']['name'])  && $_FILES['nome_campo_file1']['name']!=NULL){
    // tutto il tuo codice
    }

    if(isset(
    $_FILES['nome_campo_file2']['name'])  && $_FILES['nome_campo_file2']['name']!=NULL){
    // tutto il tuo codice

    Nel vettore $_FILES compaiono tutti e due i files, solo che il secondo file non viene caricato per niente! :S
    Mantisworks.net - Soluzioni dal web per il web!
    SEO, SEM, Software, Siti internet, Grafica e Multimedia

  5. #5
    1. Hai provato a ciclare l'array $_FILES come ti ho detto con il FOREACH, come ti ho scritto???
    2. Ammesso che il nome dei campi di upload dei file sia 1 e 2, io non vedo dove tu utilizzi la sintassi $_FILES['nome_campo_file']['name'].
    3. Non sfrutti neanche appieno la potenza dell'array $_FILES: per recuperare il tipo MIME del file usi il substring, quando puoi usare $_FILES['nome_campo_file2']['type'].
    4. Ti avevo scritto anche di gestire l'upload partendo dal riconoscimento del messaggio di errore. Hai pensato che uno dei due file può non essere caricato per un qualcuno di questi errori???
    Ti consiglio di fare un debug step-by-step, andado a ciclare l'array $_FILES con FOREACH e andando a stampare per ognuno dei due file il numero di ERRORE che si ottinene nello script che riceve la form.
    Se per entrambi è 0 non ci sono errori altrimenti uno dei due file può essere (per esempio) troppo grande ed eccedere la dimensione massima che il server alloca per il passaggio dei files.

    Fai questi test, per cortesia.
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

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.