如何在自定义模块(如magento管理员中的add product)中上载图像?

如何在自定义模块(如magento管理员中的add product)中上载图像?,magento,magento-1.7,magento-1.4,adminhtml,Magento,Magento 1.7,Magento 1.4,Adminhtml,我正在研究magento 1.7版本。我有一个自定义扩展。在此我需要添加选项来上传多个图像,类似于magento的默认产品扩展 如何实现这一点?由于您使用的是文件上载,因此需要在edit.php文件中添加enctype=“multipart/form data”(非常重要) 现在,为了上传图像,表单文件应该如下所示 <?php class Example_Imageuploader_Block_Adminhtml_Imageuploader_Edit_Tab_Form extends Ma

我正在研究magento 1.7版本。我有一个自定义扩展。在此我需要添加选项来上传多个图像,类似于magento的默认产品扩展


如何实现这一点?

由于您使用的是文件上载,因此需要在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();                                                    
    }  

}

最好只上传很少的文件,但由于用户要求在自定义模块中上传图像,例如在admin中的add product
中,意味着他希望一次上传多个图像,这可能有一个标签、排除、删除选项
<?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']);
        }
    }