将文件上传器添加到 Joomla 管理组件
我根据 Joomla 指南制作了 Joomla 管理组件 - http://docs.joomla.org/Developing_a_Model-View-Controller_Component/2.5/Developing_a_Basic_Component
I made Joomla admin component according to Joomla guide - http://docs.joomla.org/Developing_a_Model-View-Controller_Component/2.5/Developing_a_Basic_Component
因为我需要有文件上传器,让用户上传单个文件.
In that i need to have file uploader which let user to upload single file.
在administratorcomponentscom_invoicemanagermodelsformsinvoicemanager.xml 中我已经定义了
In administratorcomponentscom_invoicemanagermodelsformsinvoicemanager.xml i have defined
<field name="invoice" type="file"/>
在控制器 administratorcomponentscom_invoicemanagercontrollersinvoicemanager.php 中,我尝试检索该文件,如下所示.但它不起作用(无法检索文件)
In the controller administratorcomponentscom_invoicemanagercontrollersinvoicemanager.php im trying to retrieve that file like below. But its not working (can't retrieve file)
我哪里做错了?
如何获取文件并将其保存在磁盘上?
How can i get file and save it on disk ?
class InvoiceManagerControllerInvoiceManager extends JControllerForm
{
function save(){
$file = JRequest::getVar( 'invoice', '', 'files', 'array' );
var_dump($file);
exit(0);
}
}
推荐答案
确保您在提交文件的表单中包含了 enctype="multipart/form-data"
.这是一个常见的错误
make sure that you have included enctype="multipart/form-data"
in the form that the file is being submitting. This is a common mistake
/// Get the file data array from the request.
$file = JRequest::getVar( 'Filedata', '', 'files', 'array' );
/// Make the file name safe.
jimport('joomla.filesystem.file');
$file['name'] = JFile::makeSafe($file['name']);
/// Move the uploaded file into a permanent location.
if (isset( $file['name'] )) {
/// Make sure that the full file path is safe.
$filepath = JPath::clean( $somepath.'/'.strtolower( $file['name'] ) );
/// Move the uploaded file.
JFile::upload( $file['tmp_name'], $filepath );}
相关文章