Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Upload di foto in pagina web

    Salve, sto' disegnando un sito internet ed ho questo problema: Ho un form dove l'utente si iscrive, inserisce i suoi dati e le sue foto in un form e alla fine le invia. Tutto bene fino a quando inserisce i dati, il problema sorge quando deve inserire le foto; non so come fare uno script che permetta di fare l' upload delle foto e di mandarle alla mia mail insieme ai dati. Premetto che non sono esperto in PHP, mi limito a modificare i vari script che trovo in giro ...Sarei grato se qualcuno mi possa spiegare (o mandare uno script ) per inserire al mio form le foto. Grazie in anticipo.

  2. #2

  3. #3
    Grazie E.d.i.73 per il consiglio...Ho letto e messo in pratica la lezione ma non ha risolto il problema. Cerco di spiegarmi meglio: so come inserire l' upload per le foto ma come le foto che l'utente carica vanno a finire in un database e il form mi viene mandato alla mia casella e-mail non so di chi sono le foto. Sto' cercando un metodo per far si che le foto e il form mi arrivino insieme nella mia e-mail. Non so se e' pòssibile, altrimenti un' altro metodo...Spero di essermi spiegato meglio. Grazie in anticipo

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    539
    se ho capito bene sai come fare l'upload della foto ma non come fartela mandare per email?
    semplice...dopo che hai fatto l'upload fai uno script che invia la mail mandando in allegato la foto appena messa sul server...no?

  5. #5
    Salve freeman74, si e' proprio di questo che ho bisogno...Non avevo pensato all'allegato !!!Cosi non c'e' neanche bisogno che le foto finiscano in un database;meglio. Sdesso il problema e' sapere come fare uno script per poter caricare in allegato piu' foto (minimo 4) e se ci fosse la possibilita di vedere una piccola anteprima delle foto: e' chiedere troppo? Qualcuno puo mandare lo script? Grazie in anticipo

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    539
    l'anteprima delle foto quando ti serve?
    quando l'utente ha caricato le foto ma prima che parta la mail?
    puoi usare varie soluzioni per le anteprime: ogni volta che fai un upload mostri la pagina con la thumbnail della foto...però considera che devi ricaricare ogni volta la pagina; oppure utilizzi ajax (tramite javascript) che ti fa vedere l'anteprima senza ricaricare tutta la pagina...quest'ultima soluzione è sicuramente la migliore visivamente ma anche un pochino macchinosa...
    Considera anche che quando effettui un upload ti devi portare appresso i nomi dei file; ti conviene utilizzare un db anche perchè se l'utente chiude il browser o interrompe l'upload cmq ti rimangono i file nelle cartelle; tramite db puoi effettuare pulizie e richiamare i file come vuoi in maniera molto più rapida...

  7. #7
    grazie freeman74 per la risposta. Sono andato a vedere ajax ma ho notato che in firefox non si vedono le anteprime. Lo stesso script lo dice... Comunque non è un grosso problema quello delle anteprime, mi basterebbe sapere come fare l'upload di più foto nello stesso form, stò facendo una prova con questo script:tutto funziona, volevo solo avere la possibilità di caricre più foto...grazie comunque per l'aiuto

    <?php
    // Recupero il valore dei campi del form
    $destinatario = $_POST['destinatario'];
    $mittente = $_POST['mittente'];
    $oggetto = $_POST['oggetto'];
    $messaggio = $_POST['messaggio'];

    // Valorizzo le variabili relative all'allegato
    $allegato = $_FILES['allegato']['tmp_name'];
    $allegato_type = $_FILES['allegato']['type'];
    $allegato_name = $_FILES['allegato']['name'];



    // Creo 2 variabili che riempirò più avanti...
    $headers = "From: " . $mittente;
    $msg = "";

    // Verifico se il file è stato caricato correttamente via HTTP
    // In caso affermativo proseguo nel lavoro...
    if (is_uploaded_file($allegato))
    {

    // Apro e leggo il file allegato
    $file = fopen($allegato,'rb');
    $data = fread($file, filesize($allegato));
    fclose($file);


    // Adatto il file al formato MIME base64 usando base64_encode
    $data = chunk_split(base64_encode($data));

    // Genero il "separatore"
    // Serve per dividere, appunto, le varie parti del messaggio.
    // Nel nostro caso separerà la parte testuale dall'allegato
    $semi_rand = md5(time());
    $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";

    // Aggiungo le intestazioni necessarie per l'allegato
    $headers .= "\nMIME-Version: 1.0\n";
    $headers .= "Content-Type: multipart/mixed;\n";
    $headers .= " boundary=\"{$mime_boundary}\"";

    // Definisco il tipo di messaggio (MIME/multi-part)
    $msg .= "This is a multi-part message in MIME format.\n\n";

    // Metto il separatore
    $msg .= "--{$mime_boundary}\n";

    // Questa è la parte "testuale" del messaggio
    $msg .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
    $msg .= "Content-Transfer-Encoding: 7bit\n\n";
    $msg .= $messaggio . "\n\n";

    // Metto il separatore
    $msg .= "--{$mime_boundary}\n";

    // Aggiungo l'allegato al messaggio
    $msg .= "Content-Disposition: attachment;\n";
    $msg .= " filename=\"{$allegato_name}\"\n";
    $msg .= "Content-Transfer-Encoding: base64\n\n";
    $msg .= $data . "\n\n";

    // chiudo con il separatore
    $msg .= "--{$mime_boundary}--\n";
    }
    else
    {
    $msg = $messaggio;
    }

    // Invio la mail
    if (mail($destinatario, $oggetto, $msg, $headers))
    {
    echo "

    Mail inviata con successo!</p>";
    }else{
    echo "

    Errore!</p>";
    }
    ?>

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.