Skip to main content

Joomla uploading a file in custom component in admin

Did you ever create a custom component in joomla, that has a functionality of admin uploading a file?  Reference

There are 3 things that you need to be aware of:

First is under your form attribute, please make sure that you have enctype="multipart/form-data".
Second thing is when you grab the file at server site, please make sure the name is same as what you named on your HTML. In this case is, $file = JRequest::getVar( 'image', '', 'files', 'array');
Then make sure you include the necessarylibraries in your admin model file:

jimport('joomla.filesystem.file');
jimport('joomla.filesystem.folder');

Form code:

<form action="index.php" method="post" name="adminForm" id="adminForm" enctype="multipart/form-data">
  <input class="inputbox" name="image" type="file" id="upload_file" />
</form>

PHP code in your component admin model method:

function store()
{
$file = JRequest::getVar( 'image', '', 'files', 'array');
jimport('joomla.client.helper');
JClientHelper::setCredentialsFromRequest('ftp');
$file['name']   = JFile::makeSafe($file['name']);
$filename = strtolower($file['name']);
$filename = str_replace(' ', '_', $filename);               
$filename = time().'_'.$filename;               
  
$src = $file['tmp_name'];
$dest = '../images/stories/audio/'. $filename; // create a folder 'audio' inside images/stories

JFile::upload($src, $dest);
}

Comments

Popular posts from this blog

php strip all tags

The below function can strip almost all tags from a string. function strip_all_tags($string) {     $string = preg_replace( '@<(script|style)[^>]*?>.*?@si', '', $string );     $string = strip_tags($string);     return trim($string); } $a = '<script type="text/javascript" src="jquery.js"></script> <div id="test" style="padding:5px; color:red;">Hello world</div>'; echo strip_all_tags($a); // outputs: Hello world

htaccess disable directory browsing, disable file listing, disable file access

There may be some personal or secure data in a file, that you want to hide from the end user, when it is viewed through a web browser. Ex: http://www.example.com/user_files/24/chat.txt In the above scenario, if the file "chat.txt" contains a secure data, and you dont want to allow end users to directly access the file, or to disable the file listing in the folder "user_files" or "24", use the below code in your .htaccess file inside "user_files" folder: Options -Indexes order allow,deny deny from all

dropdown menu over flash banner

It is often annoying in some browsers when the dropdown menu at the top of the flash banner is displayed at the back of the flash. It can be corrected with some minor changes in the flash embed code: 1. for embed tag, add wmode="transparent" 2. add param to the object tag: <param name="wmode" value="transparent" />