Visualizzazione risultati 1 fino 6 di 6

Discussione: Upload in una determinata cartella da pagina web

  1. #1
    Guest

    Predefinito Upload in una determinata cartella da pagina web

    Salve a Tutti :)

    ho sono nuovo ed ho una curiosità

    c'è la possibilità di far caricare agli utenti del mio sito dei file in una cartella specifica e non nel'HDD di altervista?

    ho letto prima un'altra conversazione nella quale un utente suggeriva di creare una specie di pagina FTP....ma così facendo...gli utenti non avrebbero l'accesso a tutto il sito?

    se è fattibile mi sapreste rispondere come fare?
    grazie mille

  2. #2
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Sì, certo, con uno script PHP è possibile. Ma perché preferiresti averli all'interno dello spazio web?

  3. #3
    Guest

    Predefinito

    perchè gli utenti possono così caricare le loro foto profilo...e così sono tutte all'interno della stessa cartella...

    non sono molto pratico ancora..potresti farmi un esempio di codice cortesemente?

    la cartella è a questo indirizzo: http://facemashfabio.altervista.org/votazioni/immagini

    grazie mille :)

  4. #4
    Guest

    Predefinito

    ho trovato questo link con un codice che in lettura mi sembrava buono...
    Codice PHP:
    // dati di connessione al server FTP
    $server = 'inserire Ip';
    $username = 'inserire lo username';
    $password = 'inserire la password';


    //Apro una connessione FTP che mi restituisce un id
    $id_connessione = ftp_connect($server);

    //Effetto l'autenticazione con i dati precedentemente impostati
    $login = ftp_login($id_connessione, $username, $password);

    //A questo punto occorre effettuare l'effettivo upload dei file:
    $file_originale = 'c:\nomefile.txt';
    $file_destinazione = 'nomefile.txt';

    //Mi Sposto nella cartella in cui voglio effettuare l'upload
    ftp_chdir($id_connessione, '/upload/');

    // upload del File
    ftp_put($id_connessione, $file_destinazione, $file_originale, FTP_ASCII);

    //Chiudo la connessione
    ftp_close($id_connessione);
    ma una volta messo nella mia pagina mi genera sempre un errore (ne ho provati numerosi altri e mi generano tutti lo stesso errore:

    Codice:
    Fatal error: Call to undefined function ftp_connect() in /membri/facemashfabio/index.php on line
    come posso risolvere?

  5. #5
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    No, un codice di questo tipo non va bene su AlterVista per diverse ragioni.
    Nel tuo caso può andar bene un normale modulo con un campo per caricare file, e dal dato dello script PHP devi usare la funzione move_uploaded_file. Cercando un attimo tra i commenti o nel web (o anche qui, nel forum) troverai sicuramente esempi completi e funzionanti. Presta solo attenzione al tipo di file che permetti di caricare: un malintenzionato potrebbe sfruttare lo script di caricamento per caricare ad esempio script PHP malevoli, che una volta presenti nel tuo spazio web potrebbero venire eseguiti e recare danno al tuo sito. Quindi presta attenzione ai nomi dei file che vai a creare (non permettere di creare nel tuo spazio web file con estensione php).

  6. #6
    Guest

    Predefinito

    io pensavo di cercare di adottare un filtro che accetti solo file jpg, jpeg, png :)

    grazie mille


    cel'ho fatta :D
    ho usato questo codice:
    Codice PHP:
    <?php
    $allowedExts
    = array("gif", "jpeg", "jpg", "png");
    $temp = explode(".", $_FILES["file"]["name"]);
    $extension = end($temp);
    if (((
    $_FILES["file"]["type"] == "image/gif")
    || (
    $_FILES["file"]["type"] == "image/jpeg")
    || (
    $_FILES["file"]["type"] == "image/jpg")
    || (
    $_FILES["file"]["type"] == "image/pjpeg")
    || (
    $_FILES["file"]["type"] == "image/x-png")
    || (
    $_FILES["file"]["type"] == "image/png"))
    && (
    $_FILES["file"]["size"] < 500000)
    &&
    in_array($extension, $allowedExts))
    {
    if (
    $_FILES["file"]["error"] > 0)
    {
    echo
    "Return Code: " . $_FILES["file"]["error"] . "<br>";
    }
    else
    {
    echo
    "Upload: " . $_FILES["file"]["name"] . "<br>";
    echo
    "Type: " . $_FILES["file"]["type"] . "<br>";
    echo
    "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
    echo
    "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";


    if (
    file_exists("upload/" . $_FILES["file"]["name"]))
    {
    echo
    $_FILES["file"]["name"] . " already exists. ";
    }
    else
    {
    move_uploaded_file($_FILES["file"]["tmp_name"],
    "upload/" . $_FILES["file"]["name"]);
    echo
    "Stored in: " . "upload/" . $_FILES["file"]["name"];
    }
    }
    }
    else
    {
    echo
    "Invalid file";
    }
    ?>
    un'altra curiosità...se volessi rinominare il file che l'utente sta caricando con il valore contenuto nella variabile $utente (passata tramite post o sessione....vedrò quando creerò la sezione nel sito)...posso utilizzare questo codice?

    Codice PHP:
    rename('.$_FILES ["File"] ["name"].','ciao');
    Ultima modifica di facemashfabio : 25-02-2014 alle ore 16.54.55

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •