我有一個彪發送多個文件下面簡單的表格,發送電子郵件至:如何發送多個電子郵件附件
<form method="post" enctype="multipart/form-data">
<input id="upload-file" class="upload-file" type="file" name="my_file[]" multiple>
<input type="submit" value="Send">
</form>
我使用下面的PHP代碼做實際的發送:
if (isset($_FILES['my_file'])) {
$to = '[email protected]';
$subject = 'Files moar files';
$message = 'Message Body';
$headers = 'Some random email header';
$attachments = array();
$myFile = $_FILES['my_file'];
$fileCount = count($myFile["name"]);
for ($i = 0; $i < $fileCount; $i++) {
$attachments[$i] = $_FILES['my_file']['tmp_name'][$i];
}
wp_mail($to, $subject, $message, $headers, $attachments);
}
我正在使用wp_mail()方法,因爲這是在一個Wordpress網站(它與PHP郵件()函數相同)。 我的問題是,我收到附件的電子郵件,但文件名稱混亂,沒有擴展名,所以很難打開它。我在這裏做錯了什麼,我該如何解決?
根據codex,附件數組應該只是一個文件名數組:https://developer.wordpress.org/reference/functions/wp_mail/ –
'$ attachments屬性中的文件名必須是filesystem paths.' 如果你在談論這個 - 我知道。我正在使用tmp_name來獲取文件系統路徑,並且它工作正常,因爲我得到附件,它們就是我發送的。但是文件的名字是作爲臨時文件給出的名字eg:phpG0ChLP。這個名字缺少一個擴展名,所以你不能打開它,除非你知道它是什麼(JPG,PDF,等等)。 –
我認爲你應該做一個var轉儲....我敢肯定你的意思是做$附件[$ i] = $ _FILES ['my_file'] [$ i] ['tmp_name'];' –