在Codeigniter中发送带附件的电子邮件

时间:2012-09-26 13:35:24

标签: php codeigniter email relative-path filepath

我使用Codeigniter库发送带附件的电子邮件,我要附加的文件位于以下目录中

/uploads/pdf/yourfile.pdf

如何将其与其完整路径相关联? E.g如何找到此文件的正确路径(而不是URL)。

 $this->email->attach('/path/uploads/pdf/yourfile.pdf');

如何确定上面一行中应该替换'path'的内容

2 个答案:

答案 0 :(得分:4)

您可以在旧版本的PHP中使用__DIR__魔术常量或dirname(__FILE__)来运行脚本所在的目录,然后从这一点确定您的路径。然后,您可以使用realpath()来获取文件的已解析路径。例如:

$path_to_the_file = realpath(__DIR__.'/../uploads/pdf/yourfile.pdf/');

首先尝试echo __DIR__找到您当前的位置,然后将当前位置的相对路径添加到__DIR__并将其提供给realpath()

同样在Codeigniter中,常量APPPATH指向应用程序文件夹,因此这是另一种解决方案:

$path_to_the_file = realpath(APPPATH.'relative/path/to/the/file/from/application/folder');

答案 1 :(得分:3)

管理以使用CodeIgniters功能执行以下操作..

 $path = set_realpath('uploads/pdf/');
 $this->email->attach($path . 'yourfile.pdf');

希望这有助于其他人。再次感谢

注意:不要忘记之前加载路径助手,否则set_realpath()将不存在。