2012-10-14 72 views
0

我有一個小問題。我上傳了一個帶有使用php發送的附件的電子郵件的屏幕截圖,但是在附件名稱中有目錄名稱「upload./」,我想刪除該部分。我怎樣才能做到這一點?如何從php中的附件名稱中刪除目錄名稱

謝謝。 enter image description here

$message = $mes; 
       echo $message; 

       //echo $message; 
       $subject = $coursetitle; 
       $headers .= 'Cc: [email protected]' . "\r\n"; 

       ini_set("SMTP", "mail.amdt.lk"); 
       ini_set("sendmail_from", "[email protected]"); 

       // 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/html; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . $message . "\n\n"; 
       $message .= "--{$mime_boundary}\n"; 

       // preparing attachments 




         for($x=0;$x<count($files);$x++){ 
          $file = fopen($dir.$files[$x],"rb"); 
          $data = fread($file,filesize($dir.$files[$x])); 
          fclose($file); 
          $data = chunk_split(base64_encode($data)); 
          $message .= "Content-Type: {\"application/octet-stream\"};\n" . " name=\"$dir.$files[$x]\"\n" . 
          "Content-Disposition: attachment;\n" . " filename=\"$dir.$files[$x]\"\n" . 
          "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n"; 
          $message .= "--{$mime_boundary}\n"; 
         } 



       // send 
       //echo $message; 
       $ok = mail($to, $subject, $message, $headers); 
       if ($ok) { 
       echo "<p>mail sent to $to!</p>"; 
       } else { 
       echo "<p>mail could not be sent!</p>"; 
       } 
+1

無法使用源代碼發帖無法解決您的問題。必須具體。這篇文章可能會被關閉。您收到點(。),因爲它們是字符串「。」。或在'。'下。 –

+0

對不起,我將發佈我的代碼 – Yasitha

回答

2

你做自己......

"Content-Disposition: attachment;\n" . " filename=\"$dir.$files[$x]\"\n" 
                ^^^^ 

是這樣的文件名作爲它的應該出現在客戶端瀏覽器中......它與文件在服務器上的位置或服務器上的名稱無關。這純粹是爲了遠程用戶的信息。

在更大的方案中......不要構建自己的mime消息或使用mail()。當沒有像PHPMailer和Swiftmailer這樣的完美優秀的庫爲代碼完成所有這些工作時,Mime會很痛苦。

+0

我會upvote兩次答案的第二部分! –

+0

是的,我同意你的先生eicto先生非常感謝Marc B先生 – Yasitha

0
$string = str_replace("upload./", "", $string); 

這就是所有:)

2

使用basename()功能:

$file="upload./file.jpg"; 
$basename=basename($file); 
$dirname=dirname($file); 
相關問題