Skip to main content

Add multiple file/images in magento custom module

For upload multiple files, first we have to change input type in Abstract.php
 go to lib/Varien/Data/Form/Element/Abstract.php

look for function and replace

 public function getElementHtml()
    {
if($this->getType()=='file' && $this->getMultiple())
        $_multiple = ' multiple';
$html = '<input id="'.$this->getHtmlId().'" name="'.$this->getName()
         .'" value="'.$this->getEscapedValue().'" '.$this->serialize($this->getHtmlAttributes()).$_multiple.'/>'."\n";
$html.= $this->getAfterElementHtml();
return $html;
    }

now open form.php in your module say:

app/code/community/module name/namespace/Block/Adminhtml/Libraryfile/Edit/Tab/Form.php

add field:
$fieldset->addField('file_path', 'file', array(
'label' => Mage::helper('libraryfile')->__('File'),
'name' => 'file_path[]',
'multiple' => 'multiple',
'mulitple' => true,
'note' => '(*.pdf, *.txt, *.doc, *.docx, *.xls, *.xlsx)',

));

now change in  your controller :

add this into your saveAction method:

$i=0; 
 foreach ($_FILES['file_path']['name'] as $key => $image) { 
 $path = Mage::getBaseDir('media') . DS . 'libraryfile' . DS .'libraryfile'.DS;

 $uploader = new Mage_Core_Model_File_Uploader( 
 array( 'name' => $_FILES['file_path']['name'][$i],
 'type' => $_FILES['file_path']['type'][$i], 
 'tmp_name' => $_FILES['file_path']['tmp_name'][$i], 
 'error' => $_FILES['file_path']['error'][$i],
 'size' => $_FILES['file_path']['size'][$i] )); 
 $uploader->setAllowedExtensions(array('pdf','txt','doc','docx','xlsx','xls'));
 $uploader->setAllowRenameFiles(false); 
 $uploader->setFilesDispersion(false);
 $destFile = $path.$image; 

 $filename = $uploader->save($path, $image);
 $uploader->save($path, $filename);
 $post_data['file_path']='/media/libraryfile/libraryfile/'.$image;
 //addedby Ankur Rai 
 $i++ }

Thats it :) 

Enjoy

Comments

Popular posts from this blog

Magento Form Validators

Magento Javascript Validation Classes There are many more validation classes you can assign and I list them here as a reference. For more information on this please use Google, experiment with the code or contact me via my email or the contact form. validate-select Please select an option required-entry This is a required field validate-number Please enter a valid number in this field validate-digits Please use numbers only in this field. please avoid spaces or other characters such as dots or commas validate-alpha Please use letters only (a-z or A-Z) in this field. validate-code Please use only letters (a-z), numbers (0-9) or underscore(_) in this field, first character should be a letter. validate-alphanum Please use only letters (a-z or A-Z) or numbers (0-9) only in this field. No spaces or other characters are allowed validate-street Please use only letters (a-z or A-Z) or numbers (0-9) or spaces and # only in this field validate-phoneStrict

How to create Guest Wishlist For Magento

Add to wishlist without customer login Add three tables CREATE TABLE `wishlist` ( `wishlist_id` INT(11) NOT NULL AUTO_INCREMENT, `customer_id` INT(11) NULL DEFAULT NULL, `shared` INT(11) NULL DEFAULT NULL, `sharing_code` VARCHAR(50) NULL DEFAULT NULL, `updated_at` TIMESTAMP NULL DEFAULT NULL, `cookie` VARCHAR(255) NULL DEFAULT NULL, PRIMARY KEY (`wishlist_id`) ) COLLATE='latin1_swedish_ci' ENGINE=InnoDB AUTO_INCREMENT=0 ; CREATE TABLE `wishlist_item` ( `wishlist_item_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Wishlist item ID', `wishlist_id` INT(10) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'Wishlist ID', `product_id` INT(10) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'Product ID', `store_id` SMALLINT(5) UNSIGNED NULL DEFAULT NULL COMMENT 'Store ID', `added_at` TIMESTAMP NULL DEFAULT NULL COMMENT 'Add date and time', `description` TEXT NULL COMMENT '