2010-09-02 8 views
9

Estoy desarrollando un módulo con una interfaz y un back-end. Hasta ahora todo ha ido bien, pero ahora quiero cargar imágenes en el back-end. No sé cómo comenzar, y todo lo que probé acaba de darme un dolor de cabeza.Módulo Magento Subir imagen en Admin

Gracias

Respuesta

10

Después de unos días de investigación, aquí es un fácil utilizar el ejemplo de cómo se puede subir archivos en Magento How to create an image or video uploader for the Magento Admin Panel

Bassically, tenemos que añadir el 'enctype' => 'multipart/form-data' a nuestro formulario

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

Añadir un campo de tipo file a nuestro grupo de campos

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

y guardarlo en nuestro controlador

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) { 

    } 
} 
+0

Simplemente maravilloso, salvó mi día. – Yaroslav

+0

O estoy haciendo algo mal en eso o no funciona con 1.4. – Mike

+0

Esto fue probado en 1.9, pero puedes probar con 1.6 que se lanza como CE. –

5

Esto tiene que entrar en etc/system.xml de archivos del módulo:

<?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> 
+0

cómo podemos cambiar el tamaño de imagen con el código de seguridad? – liyakat

+0

Esta pregunta es tan antigua que ni siquiera recuerdo lo que hace este código. Te recomiendo que crees una nueva pregunta. – mattalxndr

+0

¿te olvidas de la codificación? :( – liyakat

Cuestiones relacionadas