Multiple file attachments in custom PHP formulier

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Peter van Bennink

Peter van Bennink

28/09/2013 16:13:32
Quote Anchor link
Hoi allemaal,

Ik heb een HTML formulier gemaakt met de mogelijkheid om bestanden toe te voegen. Deze probeer ik d.m.v. een PHP functie te uploaden naar de server en vervolgens toe te voegen aan de e-mail.

Het uploaden gaat helemaal naar wens maar de bestanden die in de e-mail worden toegevoegd hebben geen bestandsgrootte en type. Daardoor is het bestand onbruikbaar.

Onderstaand een voorbeeld van de code. Kan iemand mij hier verder mee helpen? Overigens misschien handig om te vermelden dat dit formulier binnen een Magento (Zend) omgeving is gemaakt.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
    public function sendemailAction()
    {
        $params = $this->getRequest()->getParams();
        $mail = new Zend_Mail();
        $senderemail = $params['email'];
        $bodytext = '
            <p>Naam: ' . $params['name'] . '</p>
            <p>Telefoon: ' . $params['telephone'] . '</p>
            <p>E-mail: ' . $params['email'] . '</p>
            <p>Ordernummer: ' . $params['ordernumber'] . '</p>
            <p>Klacht: ' . $params['comment'] . '</p>';
        $mail->setBodyHtml( $bodytext );
        $mail->setFrom('[email protected]', 'Klantnaam.nl');
        $mail->addTo('[email protected]', 'Ontvanger');
        $mail->setSubject('Onderwerp');
        
        for($i=0; $i<count($_FILES['file']['name']); $i++) {
            
            $tmpFilePath = $_FILES['file']['tmp_name'][$i];
            
            if ($tmpFilePath != ""){
                $newFilePath = "./media/uploads/" . $_FILES['file']['name'][$i];
                
                if(move_uploaded_file($tmpFilePath, $newFilePath)) {
                    $fname = $_FILES['file']['name'][$i];
                    $ftempname = $_FILES['file']['tmp_name'][$i];                    
                    $at = $mail->createAttachment(file_get_contents($ftempname));
                    $at->disposition = Zend_Mime::DISPOSITION_INLINE;
                    $at->encoding = Zend_Mime::ENCODING_BASE64;
                    $at->filename = $fname;
                }
            }
        }
        
        /*if (isset($_POST['copy'])) {
            $mail->addBcc( $senderemail );
        }*/
        
        try {
            $mail->send();
        }
        
        catch(Exception $ex) {
            Mage::getSingleton('core/session')->addError('Unable to send email.');
        }

        $this->_redirect('success');
    }
 
Er zijn nog geen reacties op dit bericht.



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.