Не могу загрузить изображения в magento

У меня есть собственный модуль, с помощью которого я пытаюсь загрузить изображения. Однако я не могу загрузить изображения

Это мой файл формы

<?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 кажется пустым, когда я напечатал это. В чем проблема в моем коде. Помоги мне. Заранее спасибо !!!


person Rajeev K Tomy    schedule 30.12.2013    source источник
comment
вам нужно добавить enctype="multipart/form-data" в вашу форму   -  person Zaheerabbas    schedule 30.12.2013
comment
нет .. у меня есть это в моем файле edit.php   -  person Rajeev K Tomy    schedule 30.12.2013


Ответы (2)


Я надеюсь, что есть ошибка в функции сохранения. Вот мой пример кода для сохранения изображения с другими деталями. Пусть это может помочь вам.

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

Вы должны сохранить изображение, позвонив как setImage($_FILES['image']['name']) Попробуйте это..

person Pavan Kumar    schedule 30.12.2013
comment
:Спасибо за ответ. но у меня есть и другое поле для сохранения. Все остальные поля работают отлично, кроме загрузки этого изображения. могу ли я тогда использовать этот код для сохранения действия? - person Rajeev K Tomy; 31.12.2013
comment
да .. Этот код предназначен только для сохранения действия. Поместите этот код в блок try действия сохранения и добавьте другие поля, которые вам нужны. Но поле изображения должно вызываться только в указанном выше формате. - person Pavan Kumar; 31.12.2013

Не забудьте указать 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>
person ClaudioC    schedule 07.03.2014