2013-10-11 3 views
1

Я создал собственный модуль в magento с атрибутом загрузки изображения. Название изображения было успешно сохранено в таблице DB. Но изображение не загружается в целевую папку.Изображение не загружается в пользовательский модуль magento

Я пробовал использовать этот следующий код. пожалуйста, покажите мне «что я делаю неправильно здесь»

 $uploader = new Varien_File_Uploader('fileinputname'); 
    $uploader->setAllowedExtensions(array('jpg','jpeg','gif','png')); 
    $uploader->setAllowRenameFiles(false); 
    $uploader->setFilesDispersion(false); 

    $path = Mage::getBaseDir('media') .DS. 'foo'.DS ; 
    $uploader->save($path, $_FILES['fileinputname']['name']); 

ответ

1

На прошлой неделе я добавил возможность загрузки файлов для моего Magento app..Here это код. Это может помочь вам. Это действие сохранения для вашего контроллера.

public function saveAction() { 
    $filedata = array(); 
    $uploadedFile = 'uploaded_file'; 
    $_helper = Mage::helper('fileuploader'); 
    if (!empty($_FILES[$uploadedFile]['name'])) { 
     try { 
      $ext = $_helper->getFileExtension($_FILES[$uploadedFile]['name']); 
      $fname = 'File-' . time() . $ext; 
      $uploader = new Varien_File_Uploader($uploadedFile); 
      #$uploader->setAllowedExtensions(array("txt", "csv", "htm", "html", "xml", "css", "doc", "docx", "xls", "xlsx", "rtf", "ppt", "pdf", "swf", "flv", "avi", "wmv", "mov", "wav", "mp3", "jpg", "jpeg", "gif", "png","zip")); 

     $uploader->setAllowRenameFiles(true); 
     $uploader->setFilesDispersion(false); 

     $path = Mage::getBaseDir('media') . DS . 'custom' . DS . 'upload' . DS; 

     $uploader->save($path, $fname); 

     $filedata[$uploadedFile] = 'custom/upload/' . $fname; 
    } catch (Exception $e) { 
     Mage::getSingleton('adminhtml/session')->addError($e->getMessage()); 
     $this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('id'))); 
     return; 
    } 
} 

if ($data = $this->getRequest()->getPost()) { 
    $products = array(); 
    $availProductIds = Mage::getModel('fileuploader/fileuploader')->getAllAvailProductIds(); 
    parse_str($data['fileuploader_products'], $products); 
    foreach ($products as $k => $v) { 
     if (preg_match('/[^0-9]+/', $k) || preg_match('/[^0-9]+/', $v)) { 
      unset($products[$k]); 
     } 
    } 

    $productIds = array_intersect($availProductIds, $products); 
    $data['product_ids'] = implode(',', $productIds); 
    if (!empty($filedata[$uploadedFile])) { 
     $data[$uploadedFile] = $filedata[$uploadedFile]; 
    } else { 
     if (isset($data[$uploadedFile]['delete']) && $data[$uploadedFile]['delete'] == 1) { 
      if ($data[$uploadedFile]['value'] != '') 
       $this->removeFile($data[$uploadedFile]['value']); 
      $data[$uploadedFile] = ''; 
     }else { 
      unset($data[$uploadedFile]); 
     } 
    } 
    $model = Mage::getModel('fileuploader/fileuploader'); 
    $model->setData($data) 
      ->setId($this->getRequest()->getParam('id')); 
    try { 
     $model->save(); 
     Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('fileuploader')->__('Item was successfully saved')); 
     Mage::getSingleton('adminhtml/session')->setFormData(false); 

     if ($this->getRequest()->getParam('back')) { 
      $this->_redirect('*/*/edit', array('id' => $model->getId())); 
      return; 
     } 
     $this->_redirect('*/*/'); 
     return; 
    } catch (Exception $e) { 
     Mage::getSingleton('adminhtml/session')->addError($e->getMessage()); 
     Mage::getSingleton('adminhtml/session')->setFormData($data); 
     $this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('id'))); 
     return; 
    } 
} 


Mage::getSingleton('adminhtml/session')->addError(Mage::helper('fileuploader')->__('Unable to find item to save')); 
$this->_redirect('*/*/'); 

}

форма Сложение функцией добавить колонные в grid.php

$this->addColumn('uploaded_file', array(
      'header' => Mage::helper('fileuploader')->__('File'), 
      'align' => 'left', 
      'type' => 'file', 
      'escape' => true, 
      'sortable' => false, 
      'index' => 'uploaded_file', 
     )); 

И это самое главное. Не забывайте упоминать, что ваша форма enctype должна быть Multi/part в файле form.php. Наверное, ты пропустил это. Пожалуйста, проверьте это.

protected function _prepareForm() { 
     $form = new Varien_Data_Form(array(
        'id' => 'edit_form', 
        'action' => $this->getUrl('*/*/save', array('id' => $this->getRequest()->getParam('id'))), 
        'method' => 'post', 
        'enctype' => 'multipart/form-data' 
         ) 
     ); 

Thats it .. !!

+0

извините за это. в "$ path = Mage :: getBaseDir ('media'). DS. 'custom'. DS. 'upload'. DS;" вот что значит DS? – DRAJI

+0

Разделитель каталога .. – Elavarasan

+0

Спасибо. Он работает Fine, когда я добавил «'enctype' => 'multipart/form-data'" в $ form. – DRAJI

0

Hi Elavarasan Я не могу понять, что не так в том, что я сделал, или если я действительно что-то сделал. Я использовал созданный вами magento-module-creator, а затем добавил весь код выше, который вы даете под helper/data.php. Ничего не произошло. Цените свою помощь, поскольку я новичок в magento.

+0

вы получаете какую-либо ошибку или не имеете представления об добавлении поля изображения в форме администратора? Обратитесь к этому сообщению http://chillydraji.wordpress.com/2014/01/06/to-add-image-upload-field-in-magento-admin-form/, я надеюсь, что это поможет вам – DRAJI

+0

Я, честно говоря, У меня есть идея о добавлении поля изображения в управление продуктами под администратором. Я хочу загрузить изображение для миниатюры, маленького и большого изображения. Смутите, с чего начать. Недавно я установил свой модуль -> local/Von/Configs/etc/config.xml и т. Д./Modules/Von_Configs.xml. Будете ли вы так любезны научить меня, как реализовать вышеуказанный код, который разделяет Elavarasan? Где и какая папка для доступа? Я использую корпоративную версию. Спасибо – user3364265

+0

Также сообщение, которое вы мне дали. Кажется, я не могу найти /app/code/local/Chilly/ModName/Block/Adminhtml/ModName/Edit/Form.php – user3364265

Смежные вопросы