Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di Freax
    Registrato dal
    Jul 2006
    Messaggi
    460

    problema con form per upload

    ragazzi ho un form per fare l'upload di un file il cui codice html è :

    codice:
    <h1>scegli cosa uppare dal tuo pc verso il mio spazio web</h1>
    
    
    <form method="post" action="uppa.php" enctype="multipart/form-data">
    <input type="file" name="file1">
    
    
    <input type="submit" name="submit" value="Upload">
    </form>
    e la rispettiva pagina che dovrebbe farne realmente l'upload sul server

    Codice PHP:
    <?php
    require 'config.ftp.inc.php';
    $source_file=$_POST[file1];
    $dir='/'.$dominio'./public/';

    // stabilire una connessione
    $conn_id ftp_connect($ftp_server); 

    // login con user name e password
    $login_result ftp_login($conn_id$ftp_user_name$ftp_user_pass); 

    // controllo della connessione
    if ((!$conn_id) || (!$login_result)) { 
            echo 
    'La connessione FTP è fallita!
    '
    ;
            echo 
    'Tentativo di connessione a '.$ftp_server.' per l\\'utente '.$ftp_user_name.'
    '; 
            die; 
        } else {
            echo '
    Connesso a '.$ftp_server.' utente '.$ftp_user_name.'
    ';
        }

    // upload del file
    $upload = ftp_put($conn_id,$dir,$source_file, FTP_BINARY); 

    // controllo dello stato di upload
    if (!$upload) { 
            echo '
    Il caricamento FTP non è andato a buon fine!';
        } else {
            echo '
    Caricato il file '.$source_file.' su '.$ftp_server.' come '.$destination.'
    ';
        }

    // chiudere il flusso FTP 
    ftp_quit($conn_id); 
    ?>
    dove sbaglio ? :master:

  2. #2
    Utente di HTML.it L'avatar di Freax
    Registrato dal
    Jul 2006
    Messaggi
    460
    mi escono questi due messaggi di errore:

    Notice: Use of undefined constant file1 - assumed 'file1' in [percorso_file] on line 3

    Notice: Undefined index: file1 in [percorso_file] on line 3


    che succede ?

  3. #3
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    Codice PHP:
    $dir="/".$dominio."/public/"

  4. #4
    Utente di HTML.it L'avatar di Freax
    Registrato dal
    Jul 2006
    Messaggi
    460
    Originariamente inviato da Il_Drugo
    Codice PHP:
    $dir="/".$dominio."./public/"
    no , nel file è scritto correttamente , non è quello ...

    scusate ma $_POST è un array , ok?, dove immagazzino tutti i dati passati con la tecnica post e per ogni valore la chiave è il nome del form ,oppure no?
    e allora perché non mi sta cosa ...

  5. #5
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    avevo visto subito quell'errore quindi ti avevo scritto quello...

    L'errore è che i dati del file uploadato li becchi con l'array $_FILES[] non con il $_POST.

    Codice PHP:
    if(move_uploaded_file($_FILES['file1']['tmp_name'], $dir.$_FILES['file1']['name']))
    {
       echo 
    "il file è stato caricato correttamente";
    }
    else
    {
       echo 
    "Si è verificato un errore durante l'upload";

    ecco un semplice check sull'upload del file.
    Ovviamente la cartella in cui salvi il file deve avere i diritti di scrittura (chmod 777)

  6. #6
    Utente di HTML.it L'avatar di Freax
    Registrato dal
    Jul 2006
    Messaggi
    460
    Originariamente inviato da Il_Drugo
    avevo visto subito quell'errore quindi ti avevo scritto quello...

    L'errore è che i dati del file uploadato li becchi con l'array $_FILES[] non con il $_POST.

    Codice PHP:
    if(move_uploaded_file($_FILES['file1']['tmp_name'], $dir.$_FILES['file1']['name']))
    {
       echo 
    "il file è stato caricato correttamente";
    }
    else
    {
       echo 
    "Si è verificato un errore durante l'upload";

    ecco un semplice check sull'upload del file.
    Ovviamente la cartella in cui salvi il file deve avere i diritti di scrittura (chmod 777)
    non si dovrebbe usare ftp_put ? cmq non ho capito il senso del tuo script ... cioé $_FILES è un array a due dimensioni ? e perché poi? a che serve ?

  7. #7
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    Chiedilo a chi ha inventato PHP

    E' il server array che ti permette di gestire i dati del file uploadato tramite un form multidata.
    Il senso del mio script è chiaro e molto semplice (se tu avessi letto il manuale riguardo la funzione move_uploaded_file()):

    Nel momento in cui tu clicchi il submit del tuo form, il file viene automaticamente uploadato in una destinazione temporanea sul server ($_FILES['file1']['tmp_name']).
    Da qui, grazie alla funzione move_uploaded_file, lo sposti dove tu vuoi, rinominandolo o lasciandogli il suo nome originale ($_FILES['file1']['name']). Se la cosa va a buon fine...etc...

    l'Array è bidimensionale pe run semplice motivo...se stai uploadando 50 files puoi gestirne i dati individualmente usando come indice il nome del campo file del tuo form:

    $_FILES['file1']
    $_FILES['file2']
    $_FILES['file3']
    ....................
    $_FILES['file50']


    testa lo script...e vedrai che funziona...


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.