Visualizzazione dei risultati da 1 a 2 su 2

Discussione: form con allegati

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    417

    form con allegati

    ho bisogno di inserire tre allegati in una mail con form php, ho trovato il codice per un allegato ma non riesco a modificarlo per metterne tre un aiuto per favore
    il codice è questo:
    <?php
    $invio = isset($_POST['invio']) ? $_POST['invio'] : (isset($_GET['invio']) ? $_GET['invio'] : '');
    if ($invio == '1') {
    $to = "info@sito.com";
    $email = "info@sito.com";
    $subject = "Offerta";




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


    // Creo altre due variabili ad uno interno
    $headers = "From: " . $email;
    $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/html; charset=utf-8\r\n";
    $msg .= "Content-Transfer-Encoding: 7bit\n\n";
    $msg .= $body . "\n\n";


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


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


    $msg .= $data . "\n\n";


    // chiudo con il separatore
    $msg .= "--{$mime_boundary}--\n";
    }
    // se non è stato caricato alcun file
    // preparo un semplice messaggio testuale




    // Invio la mail
    if (mail($to, $subject, $msg, $headers))
    {
    'Inviato';
    }else{
    'errore';
    }
    }
    // fine mail
    ?>


    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="propImmobile" id="propImmobile" enctype="multipart/form-data" onsubmit="return checkForm()">
    <fieldset><legend>Foto e Immagini</legend>
    <input id="allegato" type="file" name="allegato">
    </fieldset>
    <fieldset style="padding-top:10px"><legend>Completare e inviare modulo</legend>
    <input type="hidden" name="invio" value="1" />
    <button type="submit" class="btn btn-primary">Invia Modulo &nbsp; &nbsp;<i class="fa fa-envelope-o" aria-hidden="true"></i>
    </button>
    </fieldset>
    </form>


  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    <input id="allegato" type="file" name="allegato">

    Mettine altri 2 con name diversi, oppure tutti e 3 con name="allegati[]" e li riprendi lato PHP nell'array $_POST['allegati']

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 © 2024 vBulletin Solutions, Inc. All rights reserved.