Модуль Magento Загрузить изображение в Admin - PullRequest
9 голосов
/ 03 сентября 2010

Я разрабатываю модуль с внешним и внутренним интерфейсом. До сих пор все было хорошо, но теперь я хочу загрузить изображения в бэкэнд. Я не знаю с чего начать, и все, что я пробовал, только что вызвало у меня головную боль.

Спасибо

Ответы [ 2 ]

10 голосов
/ 13 сентября 2010

После нескольких дней исследований, вот простой в использовании пример того, как вы можете загружать файлы в magento Как создать загрузчик изображений или видео для панели администратора Magento

В общем, нам нужно добавить 'enctype' => 'multipart/form-data' в нашу форму

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

Добавить поле типа file в наш набор полей

$fieldset->addField('fileinputname', 'file', array(
    'label'     => 'File label',
    'required'  => false,
    'name'      => 'fileinputname',
));

и сохранить его в нашем контроллере

if(isset($_FILES['fileinputname']['name']) and (file_exists($_FILES['fileinputname']['tmp_name']))) {
  try {
    $uploader = new Varien_File_Uploader('fileinputname');
    $uploader->setAllowedExtensions(array('jpg','jpeg','gif','png'));

    $uploader->setAllowRenameFiles(false);

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

    $uploader->save($path, $_FILES['fileinputname']['name']);

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

  }
}
7 голосов
/ 03 сентября 2010

Это должно войти в файл etc/system.xml вашего модуля:

<?xml version="1.0"?>
<config>
    <sections>
        <imagesection> <!-- Make up a section key (configuration sidebar) -->
            <!-- ... -->
            <groups>
                <imagegroup> <!-- Make up a group key (the part you can expand/collapse) -->
                    <!-- ... -->
                    <fields>
                        <imagefield> <!-- Make up a field key -->
                            <label>Field Name</label>
                            <frontend_type>image</frontend_type>
                            <backend_model>adminhtml/system_config_backend_image</backend_model>
                            <upload_dir config="system/filesystem/media" scope_info="1">uploaddir</upload_dir> <!-- would upload into media/uploaddir -->
                            <base_url type="media" scope_info="1">uploaddir</base_url> <!-- same as previous line -->
                            <sort_order>10</sort_order>
                            <show_in_default>1</show_in_default>
                            <show_in_website>1</show_in_website>
                            <show_in_store>1</show_in_store>
                        </imagefield>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...