Visualizzazione risultati 1 fino 3 di 3

Discussione: [php] Upload file sul server attraverso un form sul sito

  1. #1
    Guest

    Predefinito [php] Upload file sul server attraverso un form sul sito

    Ciao a tutti e grazie in anticipo per l'attenzione.

    PROBLEMA: ho letto che a partire da un form .html e creando un file .php posso far caricare agli utenti del mio sito delle foto in una cartella dedicata. Dovrebbe essere abbastanza semplice il tutto (avendo trovato online del codice già scritto che mi pare faccia al caso mio) nonostante io non abbia mai studiato il .php ma, pur andando vicino a farlo funzionare, mi servirebbe un aiuto.

    PAGINA SITO: http://rcdb.altervista.org/upload.html

    MIO LIVELLO CONOSCENZA HTML: discreto

    MIO LIVELLO CONOSCENZA PHP: scarso

    CODICE .HTML INSERITO NELLA PAGINA WEB DI ALTERVISTA:
    Codice HTML:
    <html>  <body><form enctype="multipart/form-data" action="http://RCDB.ALTERVISTA.ORG/UPLOAD.PHP" method="post">    <input name="userimage" type="file" />    <input type="submit" value="Carica foto" name="send"></td></form></body> </html>
    FILE .PHP PER TRASFERIRE LE FOTO NELLA CARTELLA "UPLOAD":
    Codice PHP:
    <?php
    //Impostazioni varie da modificare a piacimento
    $dimensione_max = '12600000'; // Dimensione massima delle foto
    $upload_dir = 'http://RCDB.ALTERVISTA.ORG/UPLOAD'; // Cartella dove posizione le foto
    $estensioni = array ("png", "jpg", "gif"); // Tipi di File consentiti
    $noSubmitSend = 'Nessun upload eseguito!'; // Messaggio di errore quando viene richiamato direttamente lo script PHP
    $wrongExt = 'Estensione file non valida!'; // Messaggio di errore per tipo di file non consentito
    $tooBig = 'Il file eccede la dimensione max!'; // Messaggio di errore per file troppo grande
    $thatsAll = 'Foto caricata con successo!'; // Messaggio di OK per upload corretto
    $wrongUp = 'Something wrong here!'; // Messaggio di errore quando lo script non riesce ad eseguire l'upload
    //***************************************

    // Controllo il submit del form HTML...
    if(isset($_POST['send'])) {
    $file = $_FILES['userimage']['name'];

    // Controllo il tipo di file...
    if(in_array(array_pop(explode('.',$file)),$estensioni)) {

    // Controllo la dimensione del file...
    $dimensione_file = $_FILES['userimage']['size'];
    if (
    $dimensione_file > $dimensione_max) {
    print
    $tooBig;
    } else {
    doUpload($file, $upload_dir);
    }

    } else {
    print
    $wrongExt;
    }
    } else {
    print
    $noSubmitSend;
    }


    function
    doUpload($file, $upload_dir) {
    global
    $thatsAll;

    $nomefile = $_FILES['userimage']['tmp_name'];
    $nomereale = $_FILES['userimage']['name'];
    $nomereale = htmlentities(strtolower($nomereale));

    if (
    is_uploaded_file($nomefile)) {
    $newname = ($nomereale);

    $ext = end(explode('.',$nomereale));
    $filename = explode('.',$nomereale);
    if (
    file_exists($upload_dir.'/'.$nomereale)) {
    $filename[0] .= '.';
    for (
    $a=0;$a<=9;$a++)
    $filename[0] .= chr(rand(97,122));
    $newname = $filename[0] . '.' . $ext;
    }

    $newname = str_replace(' ', '_', $newname);

    @
    move_uploaded_file($nomefile,($upload_dir.'/'.$newname));
    print
    $thatsAll;
    } else print
    $wrongUp;

    }
    ?>
    DOMANDE:

    1) Io ho creato una cartella qui: "RCDB.ALTERVISTA.ORG/UPLOAD" però, nel codice .php, dove c'è da compilare il campo "$upload_dir = " non so bene cosa devo mettere. Devo far precedere l'indirizzo da http:// o ftp:// oppure seguire queste istruzioni (vedere le ultime due righe del post di koraz)?

    2) Nel codice .html laddove devo compilare il campo "action= " mettendo il file .php, devo solo scrivere il nome del file o tutto il percorso come ho fatto io?

    3) E' corretto nel complesso quello che sto facendo? Vedete altre cose che non vanno?

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

    Predefinito

    Citazione Originalmente inviato da rcdb Visualizza messaggio
    1) Io ho creato una cartella qui: "RCDB.ALTERVISTA.ORG/UPLOAD" però, nel codice .php, dove c'è da compilare il campo "$upload_dir = " non so bene cosa devo mettere. Devo far precedere l'indirizzo da http:// o ftp:// oppure seguire queste istruzioni (vedere le ultime due righe del post di koraz)?
    Non devi inserire un URL come hai fatto tu, devi inserire un percorso (assoluto o relativo), per esempio seguendo le istruzioni che hai indicato.
    Citazione Originalmente inviato da rcdb Visualizza messaggio
    2) Nel codice .html laddove devo compilare il campo "action= " mettendo il file .php, devo solo scrivere il nome del file o tutto il percorso come ho fatto io?
    È sufficiente indicare il percorso relativo.
    Citazione Originalmente inviato da rcdb Visualizza messaggio
    3) E' corretto nel complesso quello che sto facendo? Vedete altre cose che non vanno?
    Ti ricordo che su AlterVista i nomi dei file e delle cartelle distinguono tra maiuscole e minuscole, perché hai scritto tutto in maiuscolo?

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da karl94 Visualizza messaggio
    Non devi inserire un URL come hai fatto tu, devi inserire un percorso (assoluto o relativo), per esempio seguendo le istruzioni che hai indicato.
    ...delle istruzioni che ho indicato (ovvero quelle di koraz), non capisco l'indicazione "/memri/..." oppure "/membri2i/..." ...ma cosa significa? ...è un particolare percorso fatto apposta per Altervista?
    Comunque il file .php mi funziona inserendo "./UPLOAD" laddove devo indicare il nome della cartella in cui archiviare le immagini.

    Citazione Originalmente inviato da karl94 Visualizza messaggio
    Ti ricordo che su AlterVista i nomi dei file e delle cartelle distinguono tra maiuscole e minuscole, perché hai scritto tutto in maiuscolo?
    Grazie di avermelo fatto notare: mi sarà utile per evitare errori coi nomi dei link. Nel caso specifico del nome della cartella era scritto giustamente in maiuscolo perché così l'avevo creata; mentre il resto dell'indirizzo l'ho scritto maiuscolo senza pensarci (credevo che funzionasse come per gli indirizzi email che si possono scrivere indifferentmente in maiuscolo o in minuscolo).

    Grazie per la risposta karl94: un saluto a te e a tutti gli utenti del forum
    Ultima modifica di rcdb : 17-05-2012 alle ore 17.43.36

Regole di scrittura

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