Magnento module file upload not working

萝らか妹 提交于 2020-01-17 06:09:10

问题


have a Magento module that takes an input and creates a new item off that input. Everything works fine, and I wanted to add a field that would input an image with the item. I made sure to add the corresponding database column, and made sure to make the change every where it would be needed, but when i upload an image through the new input the image field does not send in my post data. I still get an object with all the fields and values from my form but the File field is always omitted. Using $_FILE to try to access it yields nothing also.

Here is the form:

$form = new Varien_Data_Form(array(
        'id' => 'edit_form',
        'action' => $this->getUrl('*/*/edit', array('embroidery_id' =>    $this->getRequest()->getParam('embroidery_id'))),
        'method' => 'post',
        'enctype' => 'multipart/form-data'
    ));
    $form->setUseContainer(true);
    $this->setForm($form);

    $fieldset = $form->addFieldset(
        'general',
        array(
            'legend' => $this->__('Details')
        )
    );

And here are the fields:

 $this->_addFieldsToFieldset($fieldset, array(
        'name' => array(
            'label' => $this->__('Name'),
            'input' => 'text',
            'required' => true,
        ),
        'file_t' => array(
            'label'     => $this->__('File path'),
            'required'  => false,
            'class'     => 'disable',
            'input'     => 'file',
            'name'      => 'file_t',
            'value'  => 'file_t',
        ),
    ));

Any help or guidance would be appreciated. i already did some googling and looked at all the top results for adding in a file upload field, and I copied some of the code exactly but the post field for the file input is still empty.

For Clarification:

The _addFieldsToFieldset function just loops through the fields array and either fills them in with data or adds the field onto the $fieldset variable. I also tried adding the field straight onto the variable with the following code but it did not work also.

$fieldset->addField('file_t', 'file', array(
      'label'     => $this->__('File path'),
      'required'  => false,
      'name'      => 'file_t',
));

Here is the function that handles the saving. This function does work, it has been tried and tested multiple times when I submitted other forms, and all the fields were successfully saved, and everything was sent through, but whenever I add the file field on, the post data looks exactly the same, and everything still works, it just does not send the file field through the post.

       if(isset($_FILES['file_t']['name'])){
            echo 'TRUE';
        }

        var_dump($this->getRequest()->getPost()); exit();

        $em->addData($postData);
        $em->save();

        $this->_getSession()->addSuccess(
            $this->__('The embroidery has been saved.')
        );

        // redirect to remove $_POST data from the request
        return $this->_redirect(
        'mu_em_admin/embroidery/edit', 
            array('embroidery_id' => $em->getID())
        );

I simplified alot of the code down to only include the important parts. I also have the var_dump function there to troubleshoot the code. The results of var_dump were the whole post array that was sent, except for the file field.


回答1:


please try to put this form before body end and then submit.

what web browser do you use, and which version of php?



来源:https://stackoverflow.com/questions/38356632/magnento-module-file-upload-not-working

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!