shadiadiph Posted February 17, 2009 Share Posted February 17, 2009 I am using the following which attaches one file fine how can I make it attach and send more than 1 file? $fileatt = $_FILES['fileatt']['tmp_name']; $fileatt_type = $_FILES['fileatt']['type']; $fileatt_name = $_FILES['fileatt']['name']; $to = 'website.com'; $boundary = '==Multipart_Boundary_x' .md5(time()). 'x'; // headers $headers .= "From: APA <[email protected]>\n"; $headers .= "MIME-Version: 1.0\n"; $headers .= "Content-Type: multipart/mixed;\n boundary=\"$boundary\"\n\n"; // message $message = "--{$boundary}\n"; $message .= "Content-Type: text/html; charset=iso-8859-1\n"; $message .= "Content-Transfer-Encoding: 7bit\n\n"; // attachment $fp = fopen($fileatt, 'rb'); $data = fread($fp, filesize($fileatt)); fclose($fp); $data = chunk_split(base64_encode($data)); $message .= "--{$boundary}\n"; $message .= "Content-Type: $fileatt_type;\n name=\"$fileatt_name\"\n"; //$message .= "Content-Disposition: attachment;\n filename=\"$fileatt_name\"\n"; $message .= "Content-Transfer-Encoding: base64;\n\n$data\n\n"; $message .= "--{$boundary}--\n"; Link to comment https://forums.phpfreaks.com/topic/145489-solved-multiple-attachments/ Share on other sites More sharing options...
drisate Posted February 17, 2009 Share Posted February 17, 2009 I am sort of doing the same thing ... But what i am working on is this <input id="file" style="BACKGROUND-COLOR: #ddeeee" type="file" size="55" name="userfile[]1"> <input id="file" style="BACKGROUND-COLOR: #ddeeee" type="file" size="55" name="userfile[]1"> <input id="file" style="BACKGROUND-COLOR: #ddeeee" type="file" size="55" name="userfile[]1"> <input id="file" style="BACKGROUND-COLOR: #ddeeee" type="file" size="55" name="userfile[]1"> <input id="file" style="BACKGROUND-COLOR: #ddeeee" type="file" size="55" name="userfile[]1"> then foreach($_FILES['userfile']['tmp_name'] as $key => $value){ // [...] // $_FILES['userfile']['tmp_name'][$key] // $_FILES['userfile']['name'][$key] // [...] } Link to comment https://forums.phpfreaks.com/topic/145489-solved-multiple-attachments/#findComment-763799 Share on other sites More sharing options...
plodos Posted February 17, 2009 Share Posted February 17, 2009 if you find the solution could you share it ? Link to comment https://forums.phpfreaks.com/topic/145489-solved-multiple-attachments/#findComment-763820 Share on other sites More sharing options...
drisate Posted February 17, 2009 Share Posted February 17, 2009 What i gave you is the solution bro hehe the problem i have is a lot more complicated <?php $target_path = "uploads/"; foreach($_FILES['userfile']['tmp_name'] as $key => $value){ $target_path = $target_path . basename( $_FILES['userfile']['name'][$key]); if(move_uploaded_file($_FILES['userfile']['tmp_name'][$key], $target_path)) { echo "The file ". basename( $_FILES['userfile']['name'][$key]). " has been uploaded"; } else{ echo "There was an error uploading the file, please try again!"; } } ?> Link to comment https://forums.phpfreaks.com/topic/145489-solved-multiple-attachments/#findComment-763826 Share on other sites More sharing options...
shadiadiph Posted February 17, 2009 Author Share Posted February 17, 2009 mmm still can't get it to work Link to comment https://forums.phpfreaks.com/topic/145489-solved-multiple-attachments/#findComment-763839 Share on other sites More sharing options...
drisate Posted February 17, 2009 Share Posted February 17, 2009 i can't help if you don't post what your trying Link to comment https://forums.phpfreaks.com/topic/145489-solved-multiple-attachments/#findComment-763841 Share on other sites More sharing options...
shadiadiph Posted February 17, 2009 Author Share Posted February 17, 2009 mmm I have just tried it with this a remake of the original one that was sending one file with no problem I acn't see why it isn't working?? $fileatt = $_FILES['fileatt']['tmp_name']; $fileatt_type = $_FILES['fileatt']['type']; $fileatt_name = $_FILES['fileatt']['name']; $to = '[email protected]'; $boundary = '==Multipart_Boundary_x' .md5(time()). 'x'; // headers $headers .= "From: APA <[email protected]>\n"; $headers .= "MIME-Version: 1.0\n"; $headers .= "Content-Type: multipart/mixed;\n boundary=\"$boundary\"\n\n"; // message $message = "--{$boundary}\n"; $message .= "Content-Type: text/html; charset=iso-8859-1\n"; $message .= "Content-Transfer-Encoding: 7bit\n\n"; $message .= "<html> <head> <title>HTML message</title> </head> <body> hello </body> </html>"; for($x=0;$x<count($fileatt);$x++){ $file = fopen($fileatt[$x],"rb"); $data = fread($file,filesize($fileatt[$x])); fclose($file); $data = chunk_split(base64_encode($data)); $message .= "--{$boundary}\n"; $message .= "Content-Type: $fileatt_type[$x];\n name=\"$fileatt_name[$x]\"\n"; //$message .= "Content-Disposition: attachment;\n filename=\"$fileatt_name[$x]\"\n"; $message .= "Content-Transfer-Encoding: base64;\n\n$data\n\n"; $message .= "--{$boundary}--\n"; } mail($to, $subject, $message, $headers); [/code] Link to comment https://forums.phpfreaks.com/topic/145489-solved-multiple-attachments/#findComment-763901 Share on other sites More sharing options...
shadiadiph Posted February 17, 2009 Author Share Posted February 17, 2009 I now have $fileatt = $_FILES['fileatt']['tmp_name']; $fileatt_type = $_FILES['fileatt']['type']; $fileatt_name = $_FILES['fileatt']['name']; $to = '[email protected]'; $boundary = '==Multipart_Boundary_x' .md5(time()). 'x'; // headers $headers .= "From: Asia Pacific Advisors <[email protected]>\n"; $headers .= "MIME-Version: 1.0\n"; $headers .= "Content-Type: multipart/mixed;\n boundary=\"$boundary\"\n\n"; // message $message = "--{$boundary}\n"; $message .= "Content-Type: text/html; charset=iso-8859-1\n"; $message .= "Content-Transfer-Encoding: 7bit\n\n"; $message .= "<html> <head> <title>HTML message</title> </head> <body> hello if(is_uploaded_file($fileatt)){ for($x=0;$x<count($fileatt);$x++) { $fp = fopen($fileatt[$x], 'rb'); $data = fread($fp, filesize($fileatt[$x])); fclose($fp); $data = chunk_split(base64_encode($data)); $message .= "--{$boundary}\n"; $message .= "Content-Type: $fileatt_type[$x];\n name=\"$fileatt_name[$x]\"\n"; //$message .= "Content-Disposition: attachment;\n filename=\"$fileatt_name[$x]\"\n"; $message .= "Content-Transfer-Encoding: base64;\n\n$data\n\n"; $message .= "--{$boundary}--\n"; } } mail($to, $subject, $message, $headers); Link to comment https://forums.phpfreaks.com/topic/145489-solved-multiple-attachments/#findComment-763914 Share on other sites More sharing options...
shadiadiph Posted February 17, 2009 Author Share Posted February 17, 2009 mm almost have it working now this is the closest it has been but it is only attaching one file? foreach ($_FILES["fileatt"]["error"] as $key => $error) { if ($error == UPLOAD_ERR_OK) { $fileatt = $_FILES['fileatt']['tmp_name'][$key]; $fileatt_type = $_FILES['fileatt']['type'][$key]; $fileatt_name = $_FILES['fileatt']['name'][$key]; // attachment $fp = fopen($fileatt, 'rb'); $data = fread($fp, filesize($fileatt)); fclose($fp); $data = chunk_split(base64_encode($data)); $message .= "--{$boundary}\n"; $message .= "Content-Type: $fileatt_type;\n name=\"$fileatt_name\"\n"; //$message .= "Content-Disposition: attachment;\n filename=\"$fileatt_name\"\n"; $message .= "Content-Transfer-Encoding: base64;\n\n$data\n\n"; //$message .= "--{$boundary}--\n"; } } mail($to, $subject, $message, $headers); Link to comment https://forums.phpfreaks.com/topic/145489-solved-multiple-attachments/#findComment-764011 Share on other sites More sharing options...
shadiadiph Posted February 17, 2009 Author Share Posted February 17, 2009 i am close to saying EUREKA but unfortunately not. now it sends both the attachments they have the correct file names types in the email but they are all unreadable? jpg gif pdf .doc .txt the .txt file did open though and had this in it Content-Disposition: attachment; filename="/tmp/phpS6Wyy3" and nothing else here is the code i am using <? session_start(); error_reporting(apa); error_reporting(7); include("../secure/global/connection.php"); $to = '[email protected]'; $boundary = '==Multipart_Boundary_x' .md5(time()). 'x'; // headers $headers .= "From: Website name <[email protected]>\n"; $headers .= "MIME-Version: 1.0\n"; $headers .= "Content-Type: multipart/mixed;\n boundary=\"$boundary\"\n\n"; // message $message = "--{$boundary}\n"; $message .= "Content-Type: text/html; charset=iso-8859-1\n"; $message .= "Content-Transfer-Encoding: 7bit\n\n"; $message .= "<html> <head> <title>HTML message</title> </head> <body> hello testing </body> </html>"; foreach ($_FILES["fileatt"]["error"] as $key => $error) { if ($error == UPLOAD_ERR_OK) { $fileatt = $_FILES['fileatt']['tmp_name'][$key]; $fileatt_type = $_FILES['fileatt']['type'][$key]; $fileatt_name = $_FILES['fileatt']['name'][$key]; // attachment $fp = fopen($fileatt, 'rb'); $data = fread($fp, filesize($fileatt)); fclose($fp); $data = chunk_split(base64_encode($data)); $message .= $data . "\n"; $message .= "--{$boundary}\n"; $message .= "Content-Type: application/$fileatt_type; name=\"$fileatt_name\"\n"; $message .= "Content-Transfer-Encoding: 7bit\n\n"; $message .= "Content-Disposition: attachment; filename=\"$fileatt\"\n\n"; } } mail($to, $subject, $message, $headers); ?> Link to comment https://forums.phpfreaks.com/topic/145489-solved-multiple-attachments/#findComment-764121 Share on other sites More sharing options...
shadiadiph Posted February 18, 2009 Author Share Posted February 18, 2009 solved it at last after 500 test emails here is the solution for that person that asked me to post it if i solved it. upload.php <?php ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Upload Files To Email</title> </head> <body> <form name="filestomail" method="post" action="submit.php" enctype="multipart/form-data"> <input type="hidden" name="MAX_FILE_SIZE" value="300000" /> <table> <tr><td>FILE ONE</td></tr> <tr><td><input type="file" name="fileatt[]" /></td></tr> <tr><td>FILE TWO</td></tr> <tr><td><input type="file" name="fileatt[]" /></td></tr> <tr><td> </td></tr> <tr><td><input name="submit" type="submit" value="Submit" /></td></tr> <tr><td><input name="reset" type="reset" value="Reset" /></td></tr> <tr><td> </td></tr> </table> </form> </body> </html> submit.php <? $to = '[email protected]'; $boundary = '==Multipart_Boundary_x' .md5(time()). 'x'; // headers $headers .= "From: Website Name <[email protected]>\n"; $headers .= "MIME-Version: 1.0\n"; $headers .= "Content-Type: multipart/mixed;\n boundary=\"$boundary\"\n\n"; // message $message = "--{$boundary}\n"; $message .= "Content-Type: text/html; charset=iso-8859-1\n"; $message .= "Content-Transfer-Encoding: 7bit\n\n"; $message .= "<html> <head> <title>HTML message</title> </head> <body> MESSAGE HTML FORMAT GOES HERE </body> </html>"; foreach ($_FILES["fileatt"]["error"] as $key => $error) { if ($error == UPLOAD_ERR_OK) { $fileatt = $_FILES['fileatt']['tmp_name'][$key]; $fileatt_type = $_FILES['fileatt']['type'][$key]; $fileatt_name = $_FILES['fileatt']['name'][$key]; // attachment $fp = fopen($fileatt, 'rb'); $data = fread($fp, filesize($fileatt)); fclose($fp); $data = chunk_split(base64_encode($data)); $message .= "\n\n"; $message .= "--{$boundary}\n"; $message .= "Content-Type: application/$fileatt_type; name=\"$fileatt_name\"\n"; $message .= "Content-Transfer-Encoding: base64\n\n"; $message .= "$data\n\n"; } } mail($to, $subject, $message, $headers); ?> Link to comment https://forums.phpfreaks.com/topic/145489-solved-multiple-attachments/#findComment-765019 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.