使用PHP

时间:2018-06-07 08:42:16

标签: php wordpress file email attachment

我尝试使用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个或多个文件时。

0 个答案:

没有答案