ก่อนอื่นสร้างฐานข้อมูลสำหรับเก็บข้อมูลไฟล์
โค้ด: เลือกทั้งหมด
CREATE TABLE IF NOT EXISTS `ok467_upload_file` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`real_name` varchar(255) NOT NULL,
`file_name` varchar(255) NOT NULL,
`type` varchar(10) NOT NULL,
`create_date` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
สร้างโฟลเดอร์สำหรับเก็บไฟล์ Upload ไว้ใน Components
ตัวอย่างโค้ดในไฟล์ controller
โค้ด: เลือกทั้งหมด
protected $url = 'index.php?option=com_test&c=upload';
function display($cachable = false, $urlparams = false) {
JRequest::setVar('view', 'upload');
parent::display($cachable, $urlparams);
}
function save () {
JRequest::checkToken() or die('Invaild Token');
$model = $this->getModel('upload');
$return = $model->uploadFile();
if($return) {
$this->setRedirect($this->url, 'Upload Successfully');
} else {
JError::raiseWarning('', 'Upload Failed');
}
$this->display();
}
โค้ด: เลือกทั้งหมด
jimport('joomla.filesystem.file');
โค้ด: เลือกทั้งหมด
function uploadFile() {
$path_upload = JPATH_COMPONENT_ADMINISTRATOR.DS.'files_upload'.DS;
$type_file = JFile::getExt($_FILES['file_upload']['name']);
$real_name = JFile::getName($_FILES['file_upload']['name']);
$file_name = md5($real_name.time());
if(JFile::copy($_FILES['file_upload']['tmp_name'], $path_upload.$file_name.'.'.$type_file)) {
$db = JFactory::getDbo();
$query = 'INSERT INTO '.$db->nameQuote('#__upload_file').' SET '
.$db->nameQuote('real_name').'='.$db->quote($real_name).', '
.$db->nameQuote('file_name').'='.$db->quote($file_name).', '
.$db->nameQuote('type').'='.$db->quote($type_file).', '
.$db->nameQuote('create_date').'='.$db->quote(time());
$db->setQuery($query);
$db->query();
$id = $db->insertid();
if($id != '') {
return true;
}
}
return false;
}
โค้ด: เลือกทั้งหมด
<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
?>
<form action="<?php echo JRoute::_('index.php');?>" method="post" name="adminForm" id="adminForm" enctype="multipart/form-data">
<label>Select File : </label>
<input type="file" name="file_upload" >
<input type="hidden" name="option" id="option" value="com_mcharts">
<input type="hidden" name="c" id="c" value="upload">
<input type="hidden" name="task" id="task" value="">
<?php echo JHtml::_('form.token'); ?>
</form>