[Joomla 2.5]การทำ Form Upload File บน Joomla

แชร์ ความรู้ในการ พัฒนา Joomla Component Extension Module Plugin

Moderators: mindphp, ผู้ดูแลกระดาน

User avatar
tsukasaz
PHP VIP Members
PHP VIP Members
Posts: 12169
Joined: 18/04/2012 9:39 am

[Joomla 2.5]การทำ Form Upload File บน Joomla

Post by tsukasaz »

การทำ Form Upload File บน Joomla

ก่อนอื่นสร้างฐานข้อมูลสำหรับเก็บข้อมูลไฟล์

Code: Select all

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 ;
สร้างไฟล์ controller model และ view ตามแบบ MVC ใน Joomla
สร้างโฟลเดอร์สำหรับเก็บไฟล์ Upload ไว้ใน Components

ตัวอย่างโค้ดในไฟล์ controller

Code: Select all

    
    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();
    }
 
ตัวอย่างโค้ดในไฟล์ model

Code: Select all

jimport('joomla.filesystem.file'); 

Code: Select all

    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;
        
    }
 
ตัวอย่าง form ในไฟล์ default.php

Code: Select all

<?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>
ทดสอบการทำงาน เลือกไฟล์ที่ต้องการ
เลือกไฟล์
เลือกไฟล์
upload2.JPG (15.97 KiB) Viewed 422 times
กด save ถ้าสำเร็จจะขึ้นตามภาพด้านล่าง
กด save
กด save
upload3.JPG (20.42 KiB) Viewed 422 times
แล้วมาดูในฐานข้อมูล กับ ในโฟลเดอร์ที่ใช้เก็บไฟล์
ตรวจสอบในฐานและในโฟลเดอร์
ตรวจสอบในฐานและในโฟลเดอร์
upload4.JPG (35.73 KiB) Viewed 422 times
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)

User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 25158
Joined: 22/09/2008 6:18 pm
Contact:

Re: [Joomla 2.5]การทำ Form Upload File บน Joomla

Post by mindphp »

เพิ่มการอัพโหลด แล้วย่อภาพอัตโนมัติ
จากงาน DMH ส่วนของ อัพโหลด รูปสมาชิก ด้วยครับ
(พี่เอา class upload มาใช้ใน Joomla)
เอามาเฉพาะส่วน Model ก็พอนะครับ
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042

User avatar
tsukasaz
PHP VIP Members
PHP VIP Members
Posts: 12169
Joined: 18/04/2012 9:39 am

Re: [Joomla 2.5]การทำ Form Upload File บน Joomla

Post by tsukasaz »

The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)

Post Reply
  • Similar Topics
    Replies
    Views
    Last post

Return to “Joomla Developing Knowledge”

Who is online

Users browsing this forum: No registered users and 2 guests