PHPMailer检查is_file
每个附件(在addAttachment
函数中,在class.phpmailer.php文件中):
if (!@is_file($path)) {
throw new phpmailerException($this->lang('file_access') . $path, self::STOP_CONTINUE);
}
我的问题是我只能使is_file
文件仅提供完整的本地路径,而不能提供URL:
is_file('C:/wamp/www/myFolder/rocks.png'); //True
is_file('http://localhost/myFolder/rocks.png'); //False :(
因此,我无法从远程服务器附加任何文件。
我究竟做错了什么??可能是权限问题?
编辑:
我知道还有其他方法可以检查文件是否存在。
但是is_file
在PhpMailer库中,我希望不要碰它,我想知道是否有可能使用它的方法使其工作。
谢谢。
不需要解决方法,您只需要使用明确用于远程资源上本地文件的函数即可。要附加远程资源而不涉及本地文件,只需执行以下操作:
$mail->addStringAttachment(file_get_contents($url), 'filename');
我不推荐这种直接内联方法,因为它会使错误处理更加困难(例如,如果URL无法响应)。
这本质上是这个问题的重复。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句