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

css link remove dotted outline

Its quite awkward to look at the link, when it is clicked and the dotted outline appears on it. To overcome it, just add the following line to your css file: a { outline: 0; } For example, to remove the dotted outline for the menu links on your page, add this to your css: #navigation li a {    outline: 0; } ( Assuming you have this menu structure: <ul id="navigation"><li><a href="news.html">News</a></li></ul> )