Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <form action="#" method="POST" enctype="multipart/form-data" >
- <input type="file" name="file[]">
- <br>
- <input type="file" name="file[]">
- <br>
- <input type="file" name="file[]">
- <br>
- <input type="submit" name="upload" value="Upload">
- <br>
- </form>
- <?php
- function fixFilesArray(&$files) {
- // a mapping of $_FILES indices for validity checking
- $names = array('name' => 1, 'type' => 1, 'tmp_name' => 1, 'error' => 1, 'size' => 1);
- // iterate over each uploaded file
- foreach ($files as $key => $part) {
- // only deal with valid keys and multiple files
- $key = (string) $key;
- if (isset($names[$key]) && is_array($part)) {
- foreach ($part as $position => $value) {
- $files[$position][$key] = $value;
- }
- // remove old key reference
- unset($files[$key]);
- }
- }
- }
- if (isset($_POST)) {
- fixFilesArray($_FILES['file']);
- // email fields: to, from, subject, and so on
- $to = "email@email.com";
- $from = "email@email.com";
- $subject ="My subject";
- $message = "My message";
- $headers = "From: $from";
- // boundary
- $semi_rand = md5(time());
- $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
- // headers for attachment
- $headers .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\"";
- // multipart boundary
- $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";
- $message .= "--{$mime_boundary}\n";
- foreach ($_FILES['file'] as $file) {
- if (!EMPTY($file['name'])) {
- $fsize = $file['size'];
- $fname = $file['name'];
- $tmp_file = fopen($file['tmp_name'],"rb");
- $data = fread($tmp_file,$fsize);
- fclose($tmp_file);
- $data = chunk_split(base64_encode($data));
- $message .= "Content-Type: {\"application/octet-stream\"};\n" . " name=\"$fname\"\n" .
- "Content-Disposition: attachment;\n" . " filename=\"$fname\"\n" .
- "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n";
- $message .= "--{$mime_boundary}\n";
- }
- }
- // send
- $ok = @mail($to, $subject, $message, $headers);
- if ($ok) {
- echo "<p>mail sent to $to!</p>";
- } else {
- echo "<p>mail could not be sent!</p>";
- }
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement