解决方案:如何在数据库上保存上载的文件名
这最终帮助了我.
我正在尝试使用XML和数据库将文件上载添加到自定义组件.
我知道如何在静态PHP环境中完成文件上传,但是我对joomla中的PHP MVC结构的了解使得我无法添加它.
到目前为止我做了什么:
•在XML文件中添加了字段(类型文件)
•在管理视图项目中添加了表单字段
•添加了一个额外字段My_project表(与图像上载列相同)
在此之前它可以工作.(字段显示在admin后端组件中)
现在,当您使用在管理后端上载的文件保存文档时,它不会将其保存到数据库中.
如果我把媒体作为字段类型然后它工作,但当我将其更改为文件时,它会崩溃.
XML文件
<?xml version="1.0" encoding="utf-8"?>
<form>
<fieldset>
<field name="project_file" type="file"
label="Upload file"
description="Upload file"
directory="mysites" />
<field name="main_image" type="media"
label="COM_MYSITES_FORM_LBL_PROJECT_MAIN_IMAGE"
description="COM_MYSITES_FORM_DESC_PROJECT_MAIN_IMAGE"
filter="raw"
directory="mysites" />
</fieldset>
Run Code Online (Sandbox Code Playgroud)
PHP文件上传脚本我正常使用
<?php
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Size: " . …Run Code Online (Sandbox Code Playgroud) 我根据Joomla指南制作了Joomla管理组件 - http://docs.joomla.org/Developing_a_Model-View-Controller_Component/2.5/Developing_a_Basic_Component
在那我需要有文件上传器,让用户上传单个文件.
在我定义的administrator\components\com_invoicemanager\models\forms\invoicemanager.xml中
<field name="invoice" type="file"/>
Run Code Online (Sandbox Code Playgroud)
在控制器管理员\ components\com_invoicemanager\controllers\invoicemanager.php我试图检索该文件,如下所示.但它无法正常工作(无法检索文件)
我在哪里做错了?
如何获取文件并将其保存在磁盘上?
class InvoiceManagerControllerInvoiceManager extends JControllerForm
{
function save(){
$file = JRequest::getVar( 'invoice', '', 'files', 'array' );
var_dump($file);
exit(0);
}
}
Run Code Online (Sandbox Code Playgroud)