Multiple file attachments in custom PHP formulier
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)
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
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');
}
{
$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.