我正在使用SwiftMailer并尝试在其文件名中添加带有特殊字符和空格的附件。如何添加这样的文件,例如。 “InformationenfüraldiMitglieder.pdf”?
我使用这个命令:
$message->attach("resources/assets/docs/Informationen für alle Mitglieder.pdf");
...但我总是找不到文件错误。当我更换所有特殊字符时,它可以正常工作吗?
是否有任何“解码功能”才能使其正常工作?对于白色空间,我可以用“\ x20”轻松替换它们并且它可以工作。但是有什么比“äöü”这样的其他角色呢?
答案 0 :(得分:2)
$message->attach("resources/assets/docs/Informationen_fuer_alle_Mitglieder.pdf");
只需重命名.pdf即可。并且在将来不要在网址中使用特殊字符和空格。
也许这对你有用:
$string = "resources/assets/docs/Informationen für alle Mitglieder.pdf"
$string = str_replace(' ', '%20', $string); // %20 means white space
$string = str_replace('ü', 'ü', $string); // %uuml means ü
echo $string;
EDIT2:
http://www.webspace-finden.de/html-php-ae-oe-ue-und-szett-zeichencodes/
Ä - & AUML;
ä - & AUML;
Ö - & Ouml;
ö - & ouml;
Ü - & Uuml;
ü - & uuml;
删除“&”后面的空白区域否则我无法展示
http://php.net/manual/de/function.urlencode.php
<?php
echo urlencode($string); >;
?>
EDIT3:
$string = "resources/assets/docs/Informationen%20für%20alle%20Mitglieder.pdf"
答案 1 :(得分:1)
您是否尝试按照the documentation正确使用附加方法?
$message->attach(Swift_Attachment::fromPath('resources/assets/docs/Informationen für alle Mitglieder.pdf'));
此外,文件名中的空格或扩展的ascii没有任何问题。没有很多操作系统不支持它。