【问题标题】:How to send php mail attachment with original filename如何使用原始文件名发送 php 邮件附件
【发布时间】:2020-09-24 23:34:29
【问题描述】:

我发送带有附件的电子邮件,一切正常,但我收到带有附件临时名称的电子邮件。这段代码有什么问题?

foreach ($_FILES["file"]["name"] as $k => $v) {
        $tmp_name = $_FILES["file"]["tmp_name"][$k];
        $name = basename($_FILES["file"]["name"][$k]);
        $mail->AddAttachment($tmp_name,$name);
}

enter image description here

【问题讨论】:

  • 在代码中看不到任何错误。你到底想做什么?
  • 我想收到带有原始文件名的附件的电子邮件。但在这种情况下,我得到了 temp_name 的附件,但不明白为什么。在图片中您可以看到附件名称是 phptFMw0J 而不是原来的名称
  • 当你回显$name时你得到什么名字?
  • 原名:image.png。 $name 一切都很好

标签: php phpmailer email-attachments pear


【解决方案1】:

尝试这样做对我有用

if (array_key_exists('filename', $_FILES))
            {
                 foreach ($_FILES["filename"]["name"] as $k => $v) 
                 {
                    $mail->addAttachment( $_FILES["filename"]["tmp_name"][$k], 
                    $_FILES["filename"]["name"][$k] );
                 }                
            }

【讨论】:

  • @LawrenceCherone OP ??
  • @LawrenceCherone 哦,好吧!为什么呢?
  • 操作使用$_FILES["file"],但代码相同。
  • @LawrenceCherone 这是故意的,op 会把他的文件名放在那里。
  • 不要直接使用$_FILES 中的内容——这是不安全的。阅读the PHP docs on handling file uploads
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-04
  • 2011-03-24
  • 1970-01-01
  • 1970-01-01
  • 2015-10-24
  • 2013-03-18
  • 2017-12-15
相关资源
最近更新 更多