PHP mailer pdf als bijlage
ik wil via phpmailer een pdf meesturen. Ik gebruik daarvoor het volgende:
$mail->AddAttachment($_POST['bijlage'], 'bijlage.pdf');
Post bijlage komt van ->
<label>Bestand:</label><input type="file" name="bijlage" size="30" />
wat loopt er mis want de bijlage wordt niet verzonden?
jasper
Je zal de PDF bijlage eerst op moeten slaan op de server. Bij het toevoegen van de attachment verwijs je naar de opgeslagen PDF.
Kan het niet zo?! :o
type="file" zit nooit in $_POST maar in $_FILES.
- SanThe - op 28/09/2011 20:27:38:
type="file" zit nooit in $_POST maar in $_FILES.
Ook dat en PHP wordt server-side uitgevoerd. Om een bijlage te versturen dient het bestand dus op de server aanwezig te zijn en dient er verwezen te worden naar dat bestand.
Je zou dus even een upload functie erbij moeten maken.
damn, valt dat even tegen.
Jeroen van Veldhuizen op 28/09/2011 20:38:48:
Misschien dat je hier wat aan hebt?
http://www.phphulp.nl/php/script/data-verwerking/upload-system/1862/
http://www.phphulp.nl/php/script/data-verwerking/upload-system/1862/
Heb je gelezen wat erbij staat...?
Zeker zeker, dat script is niet veilig. Maar het script waarnaar verwezen word is net iets te uitgebreid voor mij.
Ik heb voor een poos geleden een facturatie script gemaakt, waarbij ik de gegenereerde pdf's wou mailen, ik zat met een soortgelijk probleem als jou. Ik heb het opgelost door de pdf in een temp directory te zetten en na een succesvol verzonden mail te verwijderen.
Code (php)
1
2
3
4
5
2
3
4
5
<?php
if(is_uploaded_file($_FILES["bijlage"]["tmp_name"])) {
$mail->AddAttachment($_FILES["bijlage"]["tmp_name"], 'bijlage.pdf');
}
?>
if(is_uploaded_file($_FILES["bijlage"]["tmp_name"])) {
$mail->AddAttachment($_FILES["bijlage"]["tmp_name"], 'bijlage.pdf');
}
?>
of als je de originele bestandsnaam wilt behouden:
Code (php)
1
2
3
4
5
2
3
4
5
<?php
if(is_uploaded_file($_FILES["bijlage"]["tmp_name"])) {
$mail->AddAttachment($_FILES["bijlage"]["tmp_name"], $_FILES["bijlage"]["name"]);
}
?>
if(is_uploaded_file($_FILES["bijlage"]["tmp_name"])) {
$mail->AddAttachment($_FILES["bijlage"]["tmp_name"], $_FILES["bijlage"]["name"]);
}
?>
neen, bijlage wordt nog steeds niet mee verzonden.. :s
Jasper, als je print_r($_POST, true) en print_r($_FILES, true) doet op de plek dat deze wordt verwerkt, wat toont hij dan?
print_r($_POST, true); en print_r($_FILES, true); weergeeft niets?! zelfs geen errors?
Gewijzigd op 30/09/2011 18:15:52 door Jasper DS
Misschien is het tijd om wat code hier neer te knallen?
EDIT is al genoemd, maar toch..
Gewijzigd op 30/09/2011 20:30:21 door Bart V B
neen...
PHP Jasper op 30/09/2011 18:10:26:
print_r($_POST, true); en print_r($_FILES, true); weergeeft niets?! zelfs geen errors?
Formulier is dan niet verzonden of er zit ergens een header() die nogmaals doorstuurt zodat de data niet meer aanwezig is.
Anders kan ik je mijn mailscript wel sturen, die stuurt bv. een factuur mee.
Dat doen we dan ff via PM.
Toevoeging op 01/10/2011 12:53:19:
Met hulp van niels dan toch gelukt. Elwin zat er ook dicht bij!