Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    133

    come realizzare l'upload dei file

    ho un problema con l'upload dei file. Innanzitutto, ecco il codice della pagina:

    codice:
    <?php
    include('config.inc.php');
    top();
    $abspath = "C:\upload\\";
    ?>
    
    
    
    Inserimento allegati</p>
    
    
    Per inserire un allegato, clicca su "sfoglia", seleziona il file che desideri inviare e poi clicca su "invia".</p>
    
    <form action="allegati.php" method="post" enctype="multipart/form-data" onsubmit="return formValidate(this)">
    <input type="file" title="File allegato" name="file" ddv-required="true" />
    
    
    <input type="submit" name="submit" value="Invia" />
    </form>
    
    
    
    <?php
    $conn = DB::connect($dsn);
    
    if(isset($_POST['submit']) && $_POST['submit']=='Invia' && $_POST['file']!='')
    {
        $tmp = explode("\\", $_POST['file']);
        $filename = $tmp[count($tmp)-1];
        $path = $abspath.$filename;
        if(!file_exists($path))
        {
            copy($_POST['file'],$path);
            $var = array($_SESSION['codice_cdl'], $_SESSION['anno_rav'], $path);
            $query = "insert into allegati values (?, ?, ?)";
            $res = $conn->query($query, $var);
            if(DB::isError($res)) echo "
    
    Errore durante l'upload del file</p>";
        }
    }
    else if(isset($_POST['submit']) && $_POST['submit']=='Cancella')
    {
        unlink($_POST['file']);
        $var = array($_SESSION['codice_cdl'], $_SESSION['anno_rav'], $_POST['file']);
        $query = "delete from allegati where codice_cdl=? and anno_rav=? and uri=?";
        $res = $conn->query($query, $var);
        if(DB::isError($res)) echo "
    
    Errore durante la cancellazione del file</p>";
    }
    
    $var = array($_SESSION['codice_cdl'], $_SESSION['anno_rav']);
    $query = "select * from allegati where codice_cdl=? and anno_rav=?";
    $res = $conn->query($query, $var);
    while($row = $res->fetchRow(DB_FETCHMODE_ASSOC))
    {
        echo "<form action=\"allegati.php\" method=\"post\">
        <input type=\"hidden\" name=\"file\" value=\"$row[uri]\" />".basename($row['uri'])." - <input type=\"submit\" name=\"submit\" value=\"Cancella\" onclick=\"return confirm('Sei sicuro di voler cancellare il file?')\" />
        </form>
    
    \n\n";
    }
    
    foot();
    ?>
    il problema è che nella pagina, io clicco sfoglia, scelgo il file e faccio invia, però per un motivo che non capisco la variabile $_POST['file'], che dovrebbe contenere l'indirizzo completo del file da caricare, mi dice che quell'indice non esiste neppure... dove ho sbagliato?

    se invece tolgo il parametro enctype dal form, la variabile $_POST['file'] contiene solo il nome del file e non il suo indirizzo completo...

    help please...

  2. #2
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    il nome deol file viene restituito tramite l'array $_FILES:

    Codice PHP:
    $_FILES['nome_del_tuo_file']['name'
    Occhio che il form deve essere un multipart altrimenti non funzia.


  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    133
    Originariamente inviato da Il_Drugo
    il nome deol file viene restituito tramite l'array $_FILES:

    Codice PHP:
    $_FILES['nome_del_tuo_file']['name'
    Occhio che il form deve essere un multipart altrimenti non funzia.


    dove tu hai scritto 'nome_del_tuo_file' cosa intendi, il nome del file uploaded o il name del campo file? e in questo array, si trova solo il nome o l'intero indirizzo del file da uploadare?

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.