PHPMailer无法使用相对路径附加文件

时间:2014-03-05 12:37:51

标签: php phpmailer

我正在处理的联系表单使用一个选项来选择通过文件上传或位于服务器上的相对文件路径上传附件。第一个选项没有问题,但第二个选项不起作用,发送没有附件。

我尝试了多种组合,但似乎没有任何效果。我该怎么做?

$mail->AddAttachment("cvs/test-docx_3094.docx", $name = 'test-docx_3094.docx', $encoding = 'base64', $type = 'application/octet-stream' );

$mail->AddAttachment("cvs/test-docx_3094.docx");

$mail->AddAttachment("http://mydomain.com/cvs/test-docx_3094.docx");

任何输入?我一直在研究这个问题已经很久了,只是不能完成它。

PLMK。

1 个答案:

答案 0 :(得分:0)

您需要使用绝对文件路径。

显示我的意思我假设你有以下目录结构:

app/classes/mailer.php
app/data/test-docx_3094.docx
app/data/test-docx_3095.docx

您可以使用以下php获取mailer.php中的绝对路径:

$relativePath = "cvs/test-docx_3094.docx";
$absolutePath = realpath(dirname(__FILE__) . '/../data/') . $relativePath;

修改 考虑您的评论,您有以下文件结构:

website/
    contents/
        myplugins/
            cvs/
                test-docx_3094.docx 
            phpmailer.php

因此,绝对路径将是:

$relativePath = "cvs/test-docx_3094.docx";
$absolutePath = realpath(dirname(__FILE__) . '/cvs/') . $relativePath;

如果你的php脚本位于myplugins文件夹中。