• User Attivo

    upload immagini

    Ho creato un form sul mio sito che poi spedisce i dati via email con i vari controlli.

    ho l'esigenza di dover caricare anche delle immagini e di madarle in allegato alla mail o se piu semplice caricarle sul mio spazio ftp....
    suggeritemi qualcosa non so proprio da dove cominciare.....

    Grazie a tutti per la collaborazione.


  • Bannato User Attivo

    Senza offendere nessuno, ma dopo 10 avvisi di link attivo ... (link che non c'è ...) ho deciso di mandarti la risposta via PM.


  • Consiglio Direttivo

    Su "commissione" di Portaile84, dato che non riesce ad inviare il post (:tongueout:) lo trasmetto io 😉


    Visto che nessuno inizia... parto io:

    Intanto io comincerei con il creare il modulo di upload dei file.
    Come si dice... quando vuoi costruire qualcosa, si parte dalle fondamenta... partire dall'email o decidere se salvare tutto in una cartella del tuo spazio web non credo serva a molto.

    Detto questo le domande che io mi porrei sono:

    Quali dati devo inserire all'atto dell'upload?

    Questi dati andranno poi a comporre la form che per forza dovrà essere inizializzata in questo modo (correggetemi se sbaglio...)

     
    <form action=" [url_da_richiamare_dopo_il_post] " enctype="multipart/form-data" method="post">
     
     
    </form>
    
    

    nel mezzo ci vanno tutti i campi di testo, radio/checkbox, chaptcha o quant'altro vorrai mettere...

    Quindi rinnovo la domanda: che dati vuoi richiedere?

    Deciso questo, si passa alla parte del file.
    Vuoi controllare la dimensione massima di upload? Vuoi controllare le estensioni, quindi permettere o negare l'invio di un tipo di documento?

    Questi controlli andranno fatti, te lo consiglio, "dietro le quinte"...
    Ad esempio per verificare il peso di una immagine potresti inserire nel modulo questa stringa:

     
    <input type="hidden" name="MAX_FILE_SIZE" value=" [MAX_PESO_IMMAGINE] " />
    
    

    Con questo valore, se l'immagine supera il peso indicato (in byte) verrà riconosciuto studiando gli errori.
    Quando un file eccede nel peso (questo è valido solo se si utilizza la stringa che ti ho messo qualche riga sopra) nella matrice del file $_FILES['file']['error'] si troverà il valore 2 ovvero:
    UPLOAD_ERR_FORM_SIZE Valore: 2;
    Il file supera la dimensione specificata nel MAX_FILE_SIZE del form.

    La matrice del file dovrà essere usata anche se vuoi ad esempio moderare la risoluzione del file, le sue estensioni ...

    Dopo questi passaggi, quindi dopo aver creato la parte più grossa si può pensare al fatto:

    Salvo su disco oppure invio via email?

    Io ti consiglio la prima.

    Al massimo nella email puoi mettere un link cliccabile che ti porta dritto dritto al file appena caricato.

    Ti sconsiglio l'invio come allegato per un semplice motivo:

    In italia ci sono ancora, purtroppo, troppi utenti che utilizzano connessioni inferiori ad una adsl. Il download potrebbe risultare lungo e noioso....

    Per inviare la mail, poi, dovrai decidere se inviarla attraverso SMTP oppure utilizzando la nota a tutti funzione mail().

    Se vuoi mettere un link cliccabile (quindi codice html) ricorda di definire le intestazioni della email.
    Ovvero queste:

    [php]
    $newLine="\n";

    $intestazioni='X-Priority: 3'.$newLine;
    $intestazioni.='X-Mailer: '.NOME_SITO_WEB.$newLine;
    $intestazioni.='MIME-Version: 1.0'.$newLine;
    $intestazioni.='Content-Type: text/html; charset=iso-8859-1'.$newLine;
    $intestazioni .= "From: Email automatica <noreply noreply [dot] ext>";
    [/php]

    NOME_SITO_WEB va sostituito con il nome del tuo sito (anche se mi pare di ricordare che quella stringa non è obbligatoria)... l'indirizzo email e il nome se vuoi sostituiscile con ad esempio:

    Amministratori <indirizzo email amministratori> o quello che vuoi (basta che non sia un indirizzo di terzi...