使用Zend Form Zend_Form_Element文件进行Zend Mail附件

时间:2012-12-23 08:24:51

标签: php zend-framework

我使用Zend_Form,Zend_Form_Element_File将附件添加到电子邮件表单。 我的文件表单元素是这样的:

    $file = new Zend_Form_Element_File('file');
    $file->setLabel('File')
             ->setRequired(true)
              ->addValidator('NotEmpty');

我的发送表单控制器附件部分是:

            $at = $mail->createAttachment(file_get_contents($value['file']));
            $at->disposition = Zend_Mime::DISPOSITION_INLINE;
            $at->encoding    = Zend_Mime::ENCODING_BASE64;
            $at->filename    = $value['file']; // get this from posted form
            $mail->send();

我的问题是:表单向控制器发送文件名是没用的,电子邮件发送时附有空文件。

我的问题是:如何通过Zend_Form将完整的文件内容发送给Controller?或者在发送之前上传文件?

1 个答案:

答案 0 :(得分:2)

tmp文件夹中获取文件。尝试添加以下内容:

$fname = $_FILES['file']['name'];
$ftempname = $_FILES['file']['tmp_name']; 

并将以下行更改为:

$at = $mail->createAttachment(file_get_contents($ftempname));
$at->filename    = $fname;