Php Magento图像上载表单字段

Php Magento图像上载表单字段,php,magento,file-upload,Php,Magento,File Upload,我遵循了在我的Magento模块中实现图像上传的方法,但代码所做的最重要的事情就是通过POST传递选定的文件名:$\u FILES每当我添加图像或文件字段时,数组都是空的 这是我的密码: <?php class Moo_News_Block_Adminhtml_News_Edit_Tab_Form extends Mage_Adminhtml_Block_Widget_Form { protected function _prepareForm() { $f

我遵循了在我的Magento模块中实现图像上传的方法,但代码所做的最重要的事情就是通过POST传递选定的文件名:
$\u FILES
每当我添加
图像
文件
字段时,数组都是空的

这是我的密码:

<?php
class Moo_News_Block_Adminhtml_News_Edit_Tab_Form extends Mage_Adminhtml_Block_Widget_Form
{
    protected function _prepareForm()
    {
        $form = new Varien_Data_Form();
        $this->setForm($form);
        $fieldset = $form->addFieldset('news_form', array('legend' => Mage::helper('news')->__('Item information')));

        $fieldset->addField('title', 'text', array(
            'label'     => Mage::helper('news')->__('Title'),
            'class'     => 'required-entry',
            'required'  => true,
            'name'      => 'title',
        ));

        $fieldset->addField('published', 'select', array(
            'label'     => Mage::helper('news')->__('Published'),
            'name'      => 'published',
            'required'  => true,
            'values'    => array(
                array(
                    'value'     => 1,
                    'label'     => Mage::helper('news')->__('Yes'),
                ),

                array(
                    'value'     => 0,
                    'label'     => Mage::helper('news')->__('No'),
                ),
            ),
        ));

        $fieldset->addField('short_description', 'editor', array(
            'name'      => 'short_description',
            'label'     => Mage::helper('news')->__('Short Description'),
            'title'     => Mage::helper('news')->__('Short Description'),
            'style'     => 'width:98%; height:200px;',
            'wysiwyg'   => false,
            'required'  => true,
        ));

        $fieldset->addField('body', 'editor', array(
            'name'      => 'body',
            'label'     => Mage::helper('news')->__('Body'),
            'title'     => Mage::helper('news')->__('Body'),
            'style'     => 'width:98%; height:400px;',
            'wysiwyg'   => false,
            'required'  => true,
        ));


        $fieldset->addField('image', 'file', array(
            'label'     => Mage::helper('news')->__('Image'),
            'required'  => false,
            'name'      => 'image',
        ));

        if ( Mage::getSingleton('adminhtml/session')->getNewsData() )
        {
            $form->setValues(Mage::getSingleton('adminhtml/session')->getNewsData());
            Mage::getSingleton('adminhtml/session')->setNewsData(null);
        } elseif ( Mage::registry('news_data') ) {
            $form->setValues(Mage::registry('news_data')->getData());
        }

        return parent::_prepareForm();
    }
}

诀窍是更改默认表单创建代码

$form = new Varien_Data_Form(array(
    'id' => 'edit_form',
    'action' => $this->getUrl('*/*/save', array('id' => $this->getRequest()->getParam('id'))),
    'method' => 'post',
));

不是在我提供的代码中,而是在该部分的调用方中(
..\u Adminhtml\u News\u Edit\u Form
而不是
..\u Adminhtml\u News\u Edit\u Tab\u Form

$form = new Varien_Data_Form(array(
    'id' => 'edit_form',
    'action' => $this->getUrl('*/*/save', array('id' => $this->getRequest()->getParam('id'))),
    'method' => 'post',
));
$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'
));