朋友,
我试图让文件上传表单字段在Joomla 2.5(.11)上工作。由于某些原因,我无法上传文件。
当我点击"保存"时,文件上传栏又显示"未选择文件"。
我已经搜索了文档和讨论,但无济于事。我确实找到了如何在后端组件上进行文件上传的信息——当然是利用PHP。
我已经附加了我的XML文件代码(但删除了个人识别信息等)。
我真的很感谢任何帮助,这与Stack上其他专注于PHP解决方案的帖子不同——我希望使用模块参数来做到这一点。
http://docs.joomla.org/File_form_field_type<?xml version="1.0" encoding="utf-8"?>
<extension
type="module"
version="2.5"
client="site"
method="upgrade">
<version>2.5.0</version>
<config>
<fields name="params" >
<fieldset name="basic">
<field name="file1" type="file" label="Upload" description="Upload a file" size="10" />
</fieldset>
</fields>
</config>
</extension>
它说在文档中使用enctype="multipart/form-data"在表单字段,但我不确定这将去这里…我尝试在表单字段中包装字段并使用它,我还尝试将其设置为配置和字段元素,但无济于事。
任何帮助都是非常感激的,谢谢朋友。
我最近遇到了同样的问题,从组件/模块的后端上传文件。
根据我的发现,我可以告诉你:
- 使用类型
file
只生成html,而不生成功能。 -
类型
media
您可以上传文件,一般是图像和co.我没有成功使用pdf/xml/doc(特别是让媒体管理器显示它们,以便我可以选择一个-有一个视图只显示媒体文件)。对于某些文档类型,您需要配置一些安全检查以允许上传这些文件。 -
类型
fildlist
生成一个下拉列表,里面有可用的文件,所以你可以选择一个。
可能的解决方案(我没有尝试,但重新考虑我已经尝试过的,它可能工作)。1上传带有媒体的文件。2. 通过保存刷新页面。3.从下拉菜单中选择文件
如果有帮助请告诉我
如果您有一个支持的组件和表类,您可以很容易地使用file字段类型来处理所有前端HTML并重载JTable类中的store方法。插入以下代码行:
$src = $form['jform']["tmp_name"]['document'];
$path = JPATH_ROOT . "/media/com_mycomponent/documents/";
$name = $form['jform']['name']['document'];
$this->document = $name;
JFile::upload($src, $path . $name);
此代码片段假设字段名称为document,并且希望存储在路径指向的任何位置。但是,这将帮助您保存实际文件;您需要将逻辑添加到表或模型类中,以标记和更改表单,以反映文件确实上传了,但仍然提供一个选项,以便在需要时进行更改。
有人有什么建议吗?