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

Post a reply


In an effort to prevent automatic submissions, we require that you complete the following challenge.
Smilies
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: [Joomla 2.5]การทำ Form Upload File บน Joomla

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

by tsukasaz » 14/11/2012 4:00 pm

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

by mindphp » 14/11/2012 11:54 am

เพิ่มการอัพโหลด แล้วย่อภาพอัตโนมัติ
จากงาน DMH ส่วนของ อัพโหลด รูปสมาชิก ด้วยครับ
(พี่เอา class upload มาใช้ใน Joomla)
เอามาเฉพาะส่วน Model ก็พอนะครับ

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

by tsukasaz » 14/11/2012 11:42 am

การทำ 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 372 times
กด save ถ้าสำเร็จจะขึ้นตามภาพด้านล่าง
กด save
กด save
upload3.JPG (20.42 KiB) Viewed 372 times
แล้วมาดูในฐานข้อมูล กับ ในโฟลเดอร์ที่ใช้เก็บไฟล์
ตรวจสอบในฐานและในโฟลเดอร์
ตรวจสอบในฐานและในโฟลเดอร์
upload4.JPG (35.73 KiB) Viewed 372 times

Top