我得到的形式接受一个附件,发送附件,但如果它是一个文档是空白:PHP邮件附件是空白
$fileatt = $_FILES['file']['tmp_name']; $fileattType = $_FILES['file']['type']; $fileattName = $_FILES['file']['name']; $file = fopen($fileatt,'rb'); $data = fread($file,filesize($fileatt)); fclose($file); $semi_rand = md5(time()); $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; $headers = "from: $email"; $headers .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\""; $content = "Info about user"; $content = "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" . $content . "\n\n"; $data = chunk_split(base64_encode($data)); $content .= "--{$mime_boundary}\n" . "Content-Type: {$fileattType};\n" . " name=\"{$fileattName}\"\n" . "Content-Disposition: attachment;\n" . " filename=\"{$fileattName}\"\n" . "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n" . "--{$mime_boundary}--\n"; $send = mail("[email protected]", "Form", $content, $headers); if($send) header('Location: success page'); else header('Location: fail page');
电子邮件正确地发送,没有用正确的名称,文件附件类型和文件大小。当它打开时它是空的。
我教程从sitepoint:http://articles.sitep ......邮件PHP/5
我测试了它们所提供的文件和同样的事情发生。任何想法都会很棒。感谢大家!
这不是PHPBB .....不要使用'[代码]'标签。 – 2010-01-12 22:15:54
我在离线服务器上尝试了我的代码。我保持文件完全一样我甚至离开了ini_set调用: ini_set(“SMTP”,“smtp.server.com”); ini_set(“smtp_port”,“25”); ini_set(“sendmail_from”,“$ email”); 导致我相信这个问题是PHP所在的Web服务器。有任何想法吗? – dcp3450 2010-01-13 17:21:10