Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当附件文件名以希腊字符开头时,PHPMailer正在剪切该文件名_Php_Phpmailer - Fatal编程技术网

当附件文件名以希腊字符开头时,PHPMailer正在剪切该文件名

当附件文件名以希腊字符开头时,PHPMailer正在剪切该文件名,php,phpmailer,Php,Phpmailer,我使用PHPMailer附加Excel文件并通过邮件发送它们。 创建的文件采用希腊字符的街道地址月格式。 我遇到的第一个问题是附加文件的文件名字符不可读,因此我更改了phpmailer类$CharSet='UTF-8';从base64开始。 在我的localhostXAMPP上运行良好,邮件以正确的文件名发送。 但是,当我在Linux服务器上使用相同的代码时,尽管文件是用正确的文件名创建的,但当我附加它时,文件名被剪切到第一个数字、拉丁字符或破折号。 文件的内容和可读性与预期一致。唯一的问题是文

我使用PHPMailer附加Excel文件并通过邮件发送它们。 创建的文件采用希腊字符的街道地址月格式。 我遇到的第一个问题是附加文件的文件名字符不可读,因此我更改了phpmailer类$CharSet='UTF-8';从base64开始。 在我的localhostXAMPP上运行良好,邮件以正确的文件名发送。 但是,当我在Linux服务器上使用相同的代码时,尽管文件是用正确的文件名创建的,但当我附加它时,文件名被剪切到第一个数字、拉丁字符或破折号。 文件的内容和可读性与预期一致。唯一的问题是文件名。 e、 g.⑾⑾⑾⑾⑾⑾⑾⑾⑾,1⑾⑾⑾⑾⑾⑾⑾⑾⑾⑾⑾->1⑾⑾⑾⑾⑾⑾⑾⑾⑾⑾

        ...
        $outputFileType = 'Excel2007';  
        $outputFileName = dirname(__FILE__).'/'.$address.' - '.$period.'.xlsx';
        $objWriter->save($outputFileName);
        ...
        $mail->AddAttachment($outputFileName);
更新1 将class.phpmailer.php中的$attachment属性更改为public后,我在AddAttachment函数之后打印了数组。我得到

Array ( [0] => Array (   
[0] => /var/www/vhosts/domain.com/wp-content/themes/My-Theme/Reports/Οδός 1 - Μήνας 2014.xlsx  
[1] => 1 - Μήνας 2014.xlsx   
[2] => 1 - Μήνας 2014.xlsx   
[3] => base64   
[4] => application/octet-stream   
[5] =>   
[6] => attachment   
[7] => 0 ) ) 
所以我猜AddAttachment函数中有一些东西。pathattachment[0]是正确的。

问题在于AddAttachment使用basename从路径中提取文件名,并且basename支持区域设置。
希腊用户必须添加setlocaleLC_ALL“希腊”;在class.phpmailer.php文件中。

;?