2013-12-21 26 views

回答

0

由于您使用的是上传文件,您需要在您的edit.php文件中添加ENCTYPE =“的multipart/form-data的”非常重要

现在为了上传图像,表单文件应该是这样的

<?php 
class Example_Imageuploader_Block_Adminhtml_Imageuploader_Edit_Tab_Form extends Mage_Adminhtml_Block_Widget_Form 
{ 
    protected function _prepareForm() 
    { 
     $form = new Varien_Data_Form(); 
     $this->setForm($form); 
     $fieldset = $form->addFieldset('Images', array('legend'=>Mage::helper('banner')->__('Example Image'))); 
     $fieldset->addField('image_1', 'file', array(
      'label'  => Mage::helper('imageuploader')->__('Upload'), 
      'value' => 'image_1', 
      'disabled' => false, 
      'readonly' => true,     
     )); 
     /* 
      repeat this file field instant according to your need 
     */      
    return parent::_prepareForm();              
    } 

} 

现在在你的控制器 - > saveAction()添加这些代码

<?php 
    public function saveAction() 
    { 
     if(isset($_FILES['image_1']['name']) and (file_exists($_FILES['image_1']['tmp_name']))) 
     {        
      try 
      { 
       $path = Mage::getBaseDir('media') . DS . 'banner' . DS; 
       $uploader = new Varien_File_Uploader('image_1'); 

       $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); 

       $data['img'] = $_FILES['image_1']['name']; 
      } 
      catch(Exception $e) 
      { 

      } 
     } 
     else 
     {              
      if(isset($data['image_1']['delete']) && $postData['image_1']['delete'] == 1) 
       $data['image_1'] = ''; 
      else 
       unset($data['image_1']); 
     } 
    } 

你完成了!我认为这将提供上传图片的基本想法。使用这个使你自己的自定义模块。祝你好运

+1

它的好处是只有很少的文件需要上传,但是当用户要求在自定义模块中上传图像,就像在admin中添加产品一样意味着他想要一次上传多个图像*标签*的选项,*排除*,*删除* –

相关问题