我尝试使用wp_mail()
发送多个附件,在发现一些附件名称问题后(显示phprTxfd.pdf
而不是file_name.pdf
),我成功显示了附件的名称。
但是当我尝试发送多个附件时,它只显示邮件中的第一个附件,而不显示其他附件。
这是我的代码:
function my_custom_email_content_type( $content_type ) {
return 'text/html';
}
if ( ! function_exists( 'wp_handle_upload' ) ) {
require_once( ABSPATH . 'wp-admin/includes/file.php' );
}
$files = $_FILES[ 'fichier' ];
$upload_overrides = array( 'test_form' => false );
$attachments = array();
foreach ( $files['name'] as $key => $value ) {
if ( $files[ 'name' ][ $key ] ) {
$file = array(
'name' => $files[ 'name' ][ $key ],
'type' => $files[ 'type' ][ $key ],
'tmp_name' => $files[ 'tmp_name' ][ $key ],
'error' => $files[ 'error' ][ $key ],
'size' => $files[ 'size' ][ $key ]
);
$movefile = wp_handle_upload(
$file,
$upload_overrides
);
$attachments[] = $movefile[ 'file' ];
}
}
add_filter(
'wp_mail_content_type',
'my_custom_email_content_type'
);
wp_mail($to, $subject, $message, $headers, $attachments);
我认为问题出现了$files = $_FILES['fichier']
只保存变量中的第一个文件。
我尝试将$ files作为数组,但它不起作用。
感谢。
修改:
print_r($files)
显示:
数组([name] =>数组([0] => logo1.png [1] => logo2.png)[类型] =>数组([0] =>图像/ png [1] =>图像/ png)[tmp_name] =>数组([0] => C:\ xamp \ tmp \ phpC62D.tmp [1] => C:\ xamp \ tmp \ phpC62E.tmp) [错误] =>数组([0] => 0 [1] => 0)[size] =>数组([0] => 4440 [1] => 7830))
当我试图在我的文件输入多个文件中插入2个或多个文件时。