首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >更改附件名称: wp_mail PHP

更改附件名称: wp_mail PHP
EN

Stack Overflow用户
提问于 2018-06-05 21:39:06
回答 2查看 1.9K关注 0票数 1

我正在使用wp_mail用我网站上的表格发送邮件。但是当我附加一些文件时,名称类似于"phpr0vAqT“或"phpFO0ZoT”。

代码语言:javascript
复制
$files = array(); //Array pour les fichiers
$count = count(array_filter($_FILES['fichier']['name'])); //Compte le nombre de fichiers

        for($i=0;$i<$count;$i++){ //boucle sur chaque fichier

            array_push($files, $_FILES['fichier']['tmp_name'][$i]); //insere le fichier dans l'array $files

         }

我认为问题来自于:'tmp_name‘,但我不知道我能改变什么,因为wp_mail需要一个路径。

然后,我这样做:

代码语言:javascript
复制
wp_mail($to, $subject, $message, $headers, $files);

发送邮件。

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2018-07-17 07:29:00

上面的方法是正确的,下面是你如何在php / wp中做到这一点的一个例子。希望这能有所帮助!

代码语言:javascript
复制
if(!empty($_FILES['upload-attachment']['tmp_name'])){
            //rename the uploaded file
            $file_path = dirname($_FILES['upload-attachment']['tmp_name']);
            $new_file_uri = $file_path.'/'.$_FILES['upload-attachment']['name'];
            $moved = move_uploaded_file($_FILES['upload-attachment']['tmp_name'], $new_file_uri);
            $attachment_file = $moved ? $new_file_uri : $_FILES['upload-attachment']['tmp_name'];
            $attachments[] = $attachment_file;
 }

在完成附件之后,你应该清理干净

代码语言:javascript
复制
unlink($attachment_file);
票数 3
EN

Stack Overflow用户

发布于 2019-09-04 04:49:18

要更改附件名称,应使用phpmailer_init操作直接访问wp_mail()中使用的PHPMailer实例,而不是将$files作为函数参数传递:

代码语言:javascript
复制
function prefix_phpmailer_init(PHPMailer $phpmailer) {
    $count = count($_FILES['fichier']['tmp_name']); //Count the number of files
    for ($i = 0; $i < $count; $i++) { //loop on each file
        if (empty($_FILES['fichier']['error'][$i]))
            $phpmailer->addAttachment($_FILES['fichier']['tmp_name'][$i], $_FILES['fichier']['name'][$i]); //Pass both path and name
    }
}

add_action('phpmailer_init', 'prefix_phpmailer_init');
wp_mail($to, $subject, $message, $headers);
remove_action('phpmailer_init', 'prefix_phpmailer_init');
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50701567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档