3

I am new to magento and i am Creating Custom module for File upload in magento admin.

Right now i have post the upload file in my module controller. Here i have used move_uploaded_file to upload file in same directory with in controller folder. below code i have used for file upload in controller

$file_name=$_FILES["file"]["name"];
    $file_path="import/$file_name";

    if(move_uploaded_file($_FILES["file"]["tmp_name"],$file_path))
    {
        // my files not uploading 
    }

I can't able to upload the file in directory folder.

So what i am doing wrong? or suggest me if using move_uploaded_file in magento controller is correct way to handle file upload ?

Thanks.

balanv
  • 10,686
  • 27
  • 91
  • 137

1 Answers1

5

In order to upload file in Magento, you can use Varien_File_Uploader::save() method as:

if(isset($_FILES['file']['name']) && $_FILES['file']['name'] != '') {
    try {
        $fileName       = $_FILES['file']['name'];
        $fileExt        = strtolower(substr(strrchr($fileName, "."), 1));
        $fileNamewoe    = rtrim($fileName, $fileExt);
        $fileName       = str_replace(' ', '', $fileNamewoe) . '.' . $fileExt;

        $uploader       = new Varien_File_Uploader('file');
        $uploader->setAllowedExtensions(array('png', 'jpg')); //allowed extensions
        $uploader->setAllowRenameFiles(false);
        $uploader->setFilesDispersion(false);
        $path = Mage::getBaseDir('media') . DS . 'yourModuleFolder';
        if(!is_dir($path)){
            mkdir($path, 0777, true);
        }
        $uploader->save($path . DS, $fileName );
    } catch (Exception $e) {
        echo $e->getMessage();
    }
}
MagePsycho
  • 1,944
  • 2
  • 29
  • 60