无法上传magento中的图像

时间:2013-12-30 08:24:33

标签: magento module magento-1.7 admin

我有一个自定义模块,我试图上传图像。但是我无法上传图片

这是我的表单文件

<?php
    <form id="imageform" method="post" action="<?php echo $this->getFormAction(); ?>">
         <input type="file" id="chain_Image" value="" name="Image[]" class="input-text">
    </form>

请注意,这只是我代码的一小部分。实际上这个表格可以包含任意数量的图像也就是说,我们可以一次上传多张图片。

这是我的saveAction():

 <?php
    $arr = $this->getRequest()->getPost('Image');
    foreach($arr as $image)
    {
       if(isset($_FILES[$image]['name']) and (file_exists($_FILES[$image]['tmp_name']))) 
       {             
           try 
           {
               $path = Mage::getBaseDir('media') . DS . 'banner' . DS;
               $uploader = new Varien_File_Uploader($image);
    $uploader->setAllowedExtensions(array('jpg','png','gif','jpeg'));
               $uploader->setAllowRenameFiles(false);
               $uploader->setFilesDispersion(false);
               $destFile = $path.$_FILES[$image]['name'];
               filename = $uploader->getNewFileName($destFile);
               $uploader->save($path, $filename);
               $postData['Image'] = $_FILES[$image]['name'];
           }
           catch(Exception $e) 
           {}
       }
       else
       {                                                      
           if(isset($postData[$image]['delete']) && $postData[$image]['delete'] == 1)
                $postData[$image] = '';
           else
                unset($postData[$image]);
       }
   }                          
   $bannerModel->addData($postData)->setId($this
                ->getRequest()->getParam('id'))->save();

然而,它不会上传我的图像。当我打印出来时,$ _FILES似乎是空的。我的代码中有什么问题。帮我。在此先感谢!!!

2 个答案:

答案 0 :(得分:0)

我希望保存功能出错。这是我用其他详细信息保存图像的示例代码。让我们看看这对你有所帮助。

$newsModel->setId($this->getRequest()->getParam('id'))
                                  ->setTitle($postData['title'])
                                  ->setImage($_FILES['image']['name'])
                                  ->setContent($postData['content'])
                                  ->setStatus($postData['status'])
                                  ->save();

您必须通过调用setImage($_FILES['image']['name'])来保存图片。试试这个..

答案 1 :(得分:0)

请务必将 enctype =“multipart / form-data”放在表单参数中:

<form id="imageform" method="post" action="<?php echo $this->getFormAction(); ?>"  enctype="multipart/form-data">
         <input type="file" id="chain_Image" value="" name="Image[]" class="input-text">
    </form>