PKENGLISH Posted February 17, 2008 Share Posted February 17, 2008 Hi, I have a flash contact form that allows the user to attach a file by first uploading it to the server, then attaching it to an email. The problem is for some reason when the email gets to the email address it is sent to, the attachment changes from name.doc to attachment.exe I have placed my PHP code below, does anyone see where it goes wrong? Thanks! <?php $newfile = $_POST['uploadfile']; $fileatt = "files/" . $newfile; // Path to the file $fileatt_type = "application/octet-stream"; // File Type $fileatt_name = $_POST['uploadfile'];; // Filename that will be used for the file as the $from = $_POST['email']; $email_from = $from; // Who the email is from $email_subject = $_POST['subject']; // The Subject of the email $email_txt = "This is a message from " . $_POST['name'] . "<br></br>" . $_POST['message']; // Message that the email has in it $email_to = "name@yahoo.com"; // Who the email is too $headers = "From: ".$email_from; $file = fopen ($fileatt,'rb'); //I had to put those spaces in these 3 functions to make $data = fread ($file,filesize($fileatt)); //it post on phpfreaks for some reason fclose ($file); $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}\""; $email_message .= $email_txt . "\n\n" . "--{$mime_boundary}\n" . "Content-Type:text/html; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . $email_txt . "\n\n"; $data = chunk_split(base64_encode($data)); $email_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($email_to, $email_subject, $email_message, $headers); ?> Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.