Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Upload di file da locale a remoto

    Ragazzi,
    ho un piccolo problema che purtroppo non riesco a risolvere né tantomeno sono riuscito a trovare risposte in rete (sicuramente per mie incapacità legate al fatto che non conosco bene PHP).

    Il problema è il seguente:

    un catalogo elettronico, modificabile online tramite area admin.
    Ora, tutti i campi funzionano e vengono correttamente aggiornati nel database MySql.

    Il problema è inserire le immagini dei prodotti.

    In pratica non conosco quale sia il comando per permettere all'utente, tramite tasto "Sfoglia", di aprire una finestra locale, prendere il file desiderato e copiarlo automaticamente nella cartella /images del sito.

    Spero di essere stato chiaro e che qualcuno riesca ad aiutarmi.
    Grazie

  2. #2
    devi usare un
    codice:
    <form action="copia.php" method="post">
       <input type="file" value="Sfoglia"> //crea il pulsante per la navigazione
       <input type="submit">
    </form>

  3. #3
    grazie luqwe, e che cosa ci metto dentro copia.php?

  4. #4
    Allora intanto penso che a te serva non solo codicee php ma anchhe html, prima di tutto devi inserire il codice:
    codice:
    <input type="file" name="file" />
    da inserire nella parte di pagina dove vuoi che compaia la casella di selezione e poi a livello php trovi tutto nella variabile array:
    codice:
    $_FILE[]
    MiServe di Santino Bivacqua
    PHP/Ruby/Node.js Developer
    www.miserve.com

  5. #5
    Originariamente inviato da luqwe
    devi usare un
    codice:
    <form action="copia.php" method="post">
       <input type="file" value="Sfoglia"> //crea il pulsante per la navigazione
       <input type="submit">
    </form>
    Sono arrivato in ritardo
    MiServe di Santino Bivacqua
    PHP/Ruby/Node.js Developer
    www.miserve.com

  6. #6
    grazie ragazzi, farò le prove e vi faccio sapere, sperando di esserne in grado


  7. #7
    Leggi questo articolo:
    http://freephp.html.it/articoli/view_articolo.asp?id=73

    @luqwe quando inserisci un file la form deve essere così:
    codice:
    <form name="form" method="post" action="file.php" enctype="multipart/form-data">
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  8. #8
    grazie mille 13manuel84... ci mettiamo subito al lavoro

    a presto

  9. #9
    Grazie a manuel per la precisazione ...

    In copia.php ci devi mettere:
    codice:
    $name = $_FILES[$file][name];
    $tmp = $_FILES[$file][tmp_name];
    Che prende il nome delle variabili temporanee che usa il sistema.

    E poi esegui l'upload.

    codice:
    if(@is_uploaded_file($tmp)) {
    
    @move_uploaded_file($tmp, "$dir/$file_name") 
    or die("Impossibile spostare il file, controlla l'esistenza o i permessi della directory dove fare l'upload.");
    
    } else {
    
    die("Problemi nell'upload del file " . $name);
    
    }
    alla fine $name ti serve solo per i controlli sui nomi e le rinomine dei file che gestisci come vuoi tu.

  10. #10

    upload

    sebbene in linea di base la prog OOP sia superiore alla procedurale in alcuni casi è dispendiosa, come ad esempio quando bisogna creare script relativamente semplici e lineari. Questo è uno di quei casi, poi valuta tu secondo i tuoi gusti.

    Cmq, per uplodare file via web in primis va creato il form, suponiamo che sia

    <form enctype="multipart/form-data" action="pagina.php" method="post">
    <input name="userfile" type="file">
    <input type="submit" value="Invia File">
    </form>


    Ora ecco le variabili che ti saranno utili (array $_FILES['nomeform'])

    $_FILES['userfile']['name'] -> Il nome originale del file sul pc dell'utente.
    $_FILES['userfile']['type'] -> Il mime-type del file, se il browser fornisce questa informazione. Un esempio potrebbe essere "image/gif".
    $_FILES['userfile']['size'] -> La dimensione, in bytes, del file caricato.
    $_FILES['userfile']['tmp_name'] Il nome del file temporaneo in cui il file caricato è salvato sul server.
    $_FILES['userfile']['error'] il codice d'errore, in caso che la versione di php sia 4.2.0 o superiore.




    Esempio di script per catalogare le immagini in base al tipo:

    if ($_FILES['userfile']['error']!=0) {echo"Si è verificato un errore, torna iindietro e riprova";die;}
    // definiizione del tipo del file
    $t=$_FILES['userfile']['type']
    switch($t) {
    case "image/gif":{$dir="gif";break;}
    case "image/jpeg":{$dir="jpeg";break;}
    default:$dir="other";
    }
    //definizione del nome del file img+10 num a caso + estensione
    function creanome() {
    $nome="img";
    $i=0;while($i<11) {
    $h=mt_rand(0,9);
    $nome.=$h;
    $i++;
    }
    $nome.=".".$dir;
    $k="/".$dir.$nome;
    if (file_exists($k)) creanome();
    }

    // in fondo c'è il controllo se il nome esiste. In quelcaso ne trova un altro, ecco perche l'uso di una funzione.




    //spostamente del file nella locazione desiderata. Rikorda di usare percorsi relativi, cioè, se devi scendere di una dir usa il ".." oppure parti dalla radice MA del sito. (il file index.html di www.sito.com/index.html è in radice)

    move_uploaded_file ($_FILES['userfile']['tmp_name'] , "/$dir.$name");
    oppure se vuoi mantenere il nome originale..
    move_uploaded_file ($_FILES['userfile']['tmp_name'] , $_FILES['userfile']['name']);

    Ricordati che se non vuoiche nessun altro oltre te, o una cerchia ristretta di persone possa uplodare file è necessario proteggere la pagina. Questo puo essere fatto tramite una semplice autenticazione in php. Va inserita nella pagina dello script Php e non nella pagina dove ce il form, altrimenti potrebbe essere scavalcata.
    Ovviamente va prima di tutto perchè si tratta di un header

    <?php
    $user="pippo";
    $psw="topo";
    if (!isset($_SERVER['PHP_AUTH_USER'])) {
    header('WWW-Authenticate: Basic realm="Il mio realm"');
    header('HTTP/1.0 401 Unauthorized');
    echo 'Messaggio da inviare se si preme il tasto Cancel';
    exit;
    } else {
    if ($_SERVER['PHP_AUTH_USER']!=$user && $_SERVER['PHP_AUTH_PW']!=$psw) { echo "Sbagliato! Caro signore $_SERVER['REMOTE_ADDR'] questa è un'area riservata! ";die();}
    }
    ?>

    Poi divertiti come piu ti piace, o secondo le tue esigenze....
    ciao e buon lavoro!

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.