HTML gevorderde |
|
Hartelijk dank voor de info. Met behulp van deze info, de tut en info via een andere site ben ik eruit.
Ten behoeve van de geïnteresseerden, hieronder het ganse script:
<?php
//globals
$send = $_POST['send'];
$userfile = $_POST['userfile'];
$fileatt = $_FILES['userfile']['tmp_name'];
$fileatt_type = $_FILES['userfile']['type'];
$fileatt_name = $_FILES['userfile']['name'];
$message = "In bijlage het geuploade bestand.";
$headers = "From: Uploader";
//check of het formulier gebruikt is
if ($send == "")
{
?>
<p>Indien u uw bestand wenst te versturen, moet deze van het type .doc of .pdf zijn, en mag het bestand niet groter zijn dan 1MB.<br />
<?php
}
//check of er een bestand is geupload
elseif (!is_uploaded_file($fileatt))
{
?>
<p><font color="#CC3300">Uw heeft geen bestand geselecteerd!</font> Indien u uw bestand wenst te versturen, moet deze van het type .doc of .pdf zijn, en mag het bestand niet groter zijn dan 1MB.<br />
<?php
}
//check of bestand klainer is dan 1MB
elseif ($_FILES['userfile']['size'] > 1048576)
{
?>
<p><font color="#CC3300">Uw bestand is te groot!</font> Indien u uw bestand wenst te versturen, moet deze van het type .doc of .pdf zijn, en mag het bestand niet groter zijn dan 1MB.<br />
<?php
}
//check of het bestandstype doc of pdf is
elseif ($_FILES['userfile']['type'] != "application/msword" && $_FILES['userfile']['type'] != "application/pdf")
{
?>
<p><font color="#CC3300">Uw bestand is niet van het juiste type!</font> Indien u uw bestand wenst te versturen, moet deze van het type .doc of .pdf zijn, en mag het bestand niet groter zijn dan 1MB.<br />
<?php
}
else
{
//geupload bestand lezen
$file = fopen($fileatt,'rb');
$data = fread($file,filesize($fileatt));
fclose($file);
//header maken voor versturen van een bijlage
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
$headers .= "\nMIME-Version: 1.0\n" .
"Content-Type: multipart/mixed;\n" .
" boundary=\"{$mime_boundary}\"";
//body van het bericht samenstellen
$message = "This is a multi-part message in MIME format.\n\n" .
"--{$mime_boundary}\n" .
"Content-Type: text/plain; charset=\"iso-8859-1\"\n" .
"Content-Transfer-Encoding: 7bit\n\n" .
$message . "\n\n";
//om binaire bijlagen op te sturen
$data = chunk_split(base64_encode($data));
//bijlage aan de e-mail toevoegen
$message .= "--{$mime_boundary}\n" .
"Content-Type: {$fileatt_type};\n" .
" name=\"{$fileatt_name}\"\n" .
"Content-Disposition: attachment;\n" .
" filename=\"{$fileatt_name}\"\n" .
"Content-Transfer-Encoding: base64\n\n" .
$data . "\n\n" .
"--{$mime_boundary}--\n";
$ok = @mail("je.email@jedomein.be", "Je titel van de mail", $message, $headers);
if ($ok)
{
?>
<p>Uw bestand is verstuurd.</p>
<?php
}
else
{
?>
<p>Er is een probleem opgetreden. Gelieve later nog eens te proberen.</p>
<?php
}
}
?>
<form method="post" enctype="multipart/form-data" action="<?php echo($_SERVER['PHP_SELF']) ?>">
<input type="file" name="userfile"><br /><br />
<input type="submit" name="send" value="Versturen >>">
</form>
<?php //globals $send = $_POST['send']; $userfile = $_POST['userfile']; $fileatt = $_FILES['userfile']['tmp_name']; $fileatt_type = $_FILES['userfile']['type']; $fileatt_name = $_FILES['userfile']['name']; $message = "In bijlage het geuploade bestand."; $headers = "From: Uploader"; //check of het formulier gebruikt is if ($send == "") { ?> <p>Indien u uw bestand wenst te versturen, moet deze van het type .doc of .pdf zijn, en mag het bestand niet groter zijn dan 1MB.<br /> <?php } //check of er een bestand is geupload { ?> <p><font color="#CC3300">Uw heeft geen bestand geselecteerd!</font> Indien u uw bestand wenst te versturen, moet deze van het type .doc of .pdf zijn, en mag het bestand niet groter zijn dan 1MB.<br /> <?php } //check of bestand klainer is dan 1MB elseif ($_FILES['userfile']['size'] > 1048576) { ?> <p><font color="#CC3300">Uw bestand is te groot!</font> Indien u uw bestand wenst te versturen, moet deze van het type .doc of .pdf zijn, en mag het bestand niet groter zijn dan 1MB.<br /> <?php } //check of het bestandstype doc of pdf is elseif ($_FILES['userfile']['type'] != "application/msword" && $_FILES['userfile']['type'] != "application/pdf") { ?> <p><font color="#CC3300">Uw bestand is niet van het juiste type!</font> Indien u uw bestand wenst te versturen, moet deze van het type .doc of .pdf zijn, en mag het bestand niet groter zijn dan 1MB.<br /> <?php } else { //geupload bestand lezen $file = fopen($fileatt,'rb'); //header maken voor versturen van een bijlage $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; $headers .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\""; //body van het bericht samenstellen $message = "This is a multi-part message in MIME format.\n\n" . "--{$mime_boundary}\n" . "Content-Type: text/plain; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . $message . "\n\n"; //om binaire bijlagen op te sturen //bijlage aan de e-mail toevoegen $message .= "--{$mime_boundary}\n" . "Content-Type: {$fileatt_type};\n" . " name=\"{$fileatt_name}\"\n" . "Content-Disposition: attachment;\n" . " filename=\"{$fileatt_name}\"\n" . "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n" . "--{$mime_boundary}--\n"; $ok = @mail("je.email@jedomein.be", "Je titel van de mail", $message, $headers); if ($ok) { ?> <p>Uw bestand is verstuurd.</p> <?php } else { ?> <p>Er is een probleem opgetreden. Gelieve later nog eens te proberen.</p> <?php } } ?> <form method="post" enctype="multipart/form-data" action=" <?php echo($_SERVER['PHP_SELF']) ?>"> <input type="file" name="userfile"><br /><br /> <input type="submit" name="send" value="Versturen >>"> </form>
De code controleert of er een bestand is geselecteerd, of de grootte kleiner is dan 1MB,en of het bestand een .doc of .pdf extensie heeft.
Het volledige en meer uitgebreide script en meer uitleg vind je op http://www.site...mail-php/5
|