2013-03-14 58 views
0

我創建的應用程序允許用戶附加文件,輸入消息,然後使用PHP郵件程序插件發送電子郵件給wordpress。我使用JavaScript從上傳HTML表單獲取文件信息,然後使用PHP發送電子郵件。通過電子郵件發送上傳的文件而不先保存

$mail->AddAttachment("./new6.txt","attachment"); 

我在想,如果有電子郵件中選定的文件,而無需將其保存到服務器的方式:發送正在使用此功能在特定的位置保存在服務器上的文件時,該插件。換句話說,用戶是否可以選擇要上傳的文件,但是使用這個php函數發送文件而不將其保存在要檢索的位置?我知道有一個$ _FILES數組,您可以獲取該文件的信息,但該文件能夠發送,而不會先保存在某個位置?我猜不是因爲上傳表單的全部內容是「上傳」它,只是想知道是否可以在JavaScript或其他東西中完成。

感謝所有幫助

回答

1

你不能真正做到這一點,但你可以做到這一點得到了密切的效果:

$filename = $_FILES['file_name']['tmp_name']; 
$main->AddAttachment($filename, "attachment"); 

// Send the email... then: 
unset($filename); 

這增加的文件作爲附件,發送電子郵件,然後刪除該文件。 $_FILES陣列中的上傳文件最終會自動刷新,所以我不確定unset()部分是否有什麼重要的功能,但它肯定會刪除文件。

+0

$ filename應該來自服務器,但不是來自客戶機。 – 2013-03-14 03:23:07

0

如果不在服務器中保存文件,則無法附加郵件。

1> Mailing function is executing in Server. 
2> It is not possible from Server to get the absolute file path in client machine as in web, the client machines do not have any absolute address. 
3> So the file is needed to be uploaded in server to get a real path for the file to have in attachment of Mail.