Forms Magento-以联系人形式上载文件

Forms Magento-以联系人形式上载文件,forms,magento,file-upload,contact-form,Forms,Magento,File Upload,Contact Form,我必须在联系人表单中创建一个新字段以上载文件 我跟随图坦卡蒙,我就是这么做的: 在form.phtml中: <form action="<?php echo $this->getFormAction(); ?>" id="contactForm" method="post" enctype="multipart/form-data"> 我已尝试在本地安装中重新创建您的场景,并使用我的一个工作模块更改了您的Concoller文件上载程序代码 /***********

我必须在联系人表单中创建一个新字段以上载文件

我跟随图坦卡蒙,我就是这么做的:

在form.phtml中:

<form action="<?php echo $this->getFormAction(); ?>" id="contactForm" method="post" enctype="multipart/form-data">

我已尝试在本地安装中重新创建您的场景,并使用我的一个工作模块更改了您的Concoller文件上载程序代码

/**************************************************************/
            $fileName = '';
            if (isset($_FILES['attachment']['name']) && $_FILES['attachment']['name'] != '') {
                try {           

                    $uploader = new Varien_File_Uploader('attachment');
                    $uploader->setAllowedExtensions(array('doc', 'docx','pdf'));
                    $uploader->setAllowRenameFiles(true);
                    $uploader->setFilesDispersion(false);
                    $path = Mage::getBaseDir('media') . DS . 'contacts' . DS ;
                    if(!is_dir($path)){
                        mkdir($path, 0777, true);
                    }
                    $uploader->save($path, $_FILES['attachment']['contacts'] );             
                    $newFilename = $uploader->getUploadedFileName();


                } catch (Exception $e) {
                    $error = true;
                }
            }
            /**************************************************************/
这是工作100%正确,我已经测试了这个pdf也

请尝试更换一次。

更换

if(file_exists($attachmentFilePath)){
用这个

if(file_exists($attachmentFilePath) && is_file($attachmentFilePath)){

因为file_exists如果文件或目录存在,则结果为TRUE。我发送的电子邮件将发送一个空白的“邮件附件”文件,因为我的联系人表单上的文件上载输入是可选的。

在代码中,您可以看到一个部分写了两次,这是复制/粘贴的错误,我在原始文件中更改了它;)谢谢你的回答。我试图将您的附件部件代码粘贴到我的indexcontroller中,但我的上载仍然无法工作。我收到带有一个名为“noname”0位的附件的邮件…klipse,请尝试退出代码并检查是否有任何方法给出错误。。例如:检查echo$newFilename;模具();保存方法后。。。它应该工作得很好。。在我的localI上,使用echo$newFilename进行了检查;模具();jsut低于$uploader->save($path,$_文件['attachment']['contacts']);文件已正确上载到目录中。我收到一个白色的空白屏幕。如果我在$newFilename=$uploader->getUploadedFileName()之后退出代码;上载失败。。。
if(file_exists($attachmentFilePath)){
if(file_exists($attachmentFilePath) && is_file($attachmentFilePath)){