2015-03-03 81 views
0

我的代碼有什麼問題? 郵件發送罰款和文字也很好,但附件顯示noname.txt 請幫助。PHP Mail附件顯示noname.txt

$upload_name=$_FILES["resume"]["name"]; 
$upload_type=$_FILES["resume"]["type"]; 
$upload_size=$_FILES["resume"]["size"]; 
$upload_temp=$_FILES["resume"]["tmp_name"]; 

$file = $upload_temp; 
$content = chunk_split(base64_encode(file_get_contents($file))); 
$num = md5(uniqid(time())); 
$email_to = "[email protected]"; 
$email_subject = $name . " Applied for a job in website careers page"; 
$email_message = "<b>Form details below.</b><br />"; 
$email_message .= "<tr><td><strong>Last Name</strong> </td><td>".$name."</td></tr>"; 
$email_message .= "<tr><td><strong>Phone</strong> </td><td>".$phone."</td></tr>"; 
$headers .='Reply-To: '. $email_to . "\r\n" ; 
$headers .= "MIME-Version: 1.0\r\n"; 
$headers .= "Content-Type: multipart/mixed; boundary=\"".$num."\"\r\n\r\n"; 
$headers .= "This is a multi-part message in MIME format.\r\n"; 
$headers .= "--".$num."\r\n"; 
$headers .= "Content-Type: text/html; charset=iso-8859-1\r\n"; 
$headers .= "Content-Transfer-Encoding: 8bit\r\n\r\n"; 
$headers .= $email_message."\r\n\r\n"; 
$headers .= "--".$num."\n"; 
$headers .= "Content-Type:".$upload_type."; name=\"".$upload_name."\"\r\n\r\n"; 
$headers .= "Content-Transfer-Encoding: base64\r\n"; 
$headers .= "Content-Disposition: attachment; filename=\"".$upload_name."\"\r\n\r\n"; 
$headers .= $content."\r\n\r\n"; 
$headers .= "--".$num."--"; 

if(@mail($email_to, $email_subject, "", $headers)){ 

          echo "Mail Send"; 
          } 
          else { 
          echo "Mail not sent."; 
          } 

請幫忙。提前致謝。

+0

定義'$ upload_name'在哪裏? – 2015-03-03 03:10:59

+0

我修改了問題並添加了定義的名稱。 – user2459458 2015-03-03 03:13:40

+0

你確定這不是使用的文件名嗎? – 2015-03-03 03:14:47

回答

0

您是否考慮使用PHPMailer?根據我的經驗,避免了很多這些麻煩。

否則,嘗試改變:

$headers .= "Content-Type:".$upload_type.";name=\"".$upload_name."\"\r\n\r\n"; 

要:

$headers .= "Content-Type: multipart/mixed; name=\"".$upload_name."\"\r\n\r\n"; 
+0

它還是一樣@Matt – user2459458 2015-03-03 03:11:15