在views/temp目錄下創建當php檔案如下分別鍵入html與Javascript jQuery Ajax部分。

建立views頁面

<?php
    <form action="<?php echo JUri::getInstance(); ?>" id="adminForm" name="adminForm" enctype="multipart/form-data" method="post">

      <input name='user' placeholder='user'><br>
      <input name='password' type='password' placeholder='password'><br>
      <input type="file" name="file"/>
      <button type='submit'>Try</button>

    </form>
    <script>
        (function($)
        {
            $('button').click(function(e){
                e.preventDefault();
                var form = $('form')[0];
                var formData = new FormData(form);
                $.ajax({
                    url:'index.php?option=com_hrsystem&view=training&layout=upload&format=json',
                    type : "POST",
                    data : formData,
                    contentType: false,
                    cache: false,
                    processData: false,
                    success : function(data) 
                    {
                         console.log(data);

                    },error: function(data) 
                    {
                        console.log('無法送出');
                    }
                })

            });
        })(jQuery);
    </script>
?>

建立接收用的view頁面

本身應該使用controllers來建立接收頁面,但多次嘗試joomla在controllers,無法接收非json格式如FormData,在行建立另一個view給予接收。

在views/temp目錄下創建當php檔案

<?php 

    $file = JRequest::getVar('file', null, 'files', 'array'); //接收檔案資料
    $jinput = JFactory::getApplication()->input;

    $dest = JPATH_SITE."/files/".$file['name'];  //移動到的目錄
    move_uploaded_file($file['tmp_name'],$dest);

    $data['user']=$jinput->getString('user'); //接收的表單user資料
    $data['password']=$jinput->getString('password'); //接收的表單password資料

    $array = ['file'=>$file,'user'=>$data['user'],'password'=>$data['password']];
    $fileobj = json_encode($array);
    echo $fileobj;  //返回 json格式

?>

您也可能喜歡這些文章

PHP產生Joomla哈希密碼方法與密碼認證方式

Joomla會員系統加密的方式 Joomla元件開發時,將元件內使用者帳號密碼,寫入Joomla會員系統的#__users資料表單內,需要與Joomla用戶密碼加密的方式相同,才可整合Joomla前台網站會員系統登入。...