朋友,
我正在尝试将文件上载表单字段用于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”,但是我不知道它会在哪里...我尝试将字段包装在表单字段中并使用它,我也尝试将它设置为配置和字段元素无济于事。
非常感谢任何帮助,谢谢朋友们。
答案 0 :(得分:1)
我最近遇到了同样的问题,从组件/模块的后端上传文件。
从我发现的我可以告诉你:
file
只生成html,但不生成功能。media
您可以上传文件,通常是图片和合作。我没有成功使用pdf / xml / doc(特别是让媒体管理器显示它们,以便我可以选择一个 - 有一个只显示媒体文件的视图)。对于某些文档类型,您需要配置一些安全检查以允许上载此文件。fildlist
会生成包含可用文件的下拉列表,因此您可以选择一个。可能的解决方案(我没试过,但重新考虑我尝试过的,它可能有用)。 1使用媒体上传文件。 2.通过保存刷新页面。 3.从下拉列表中选择文件。
如果有帮助,请告诉我。
答案 1 :(得分:1)
如果您有支持组件和表类,则可以轻松使用文件字段类型来处理所有前端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);
此代码段假定字段名称是文档,并且您希望存储路径指向的位置。但是,这将有助于您保存实际文件;您需要向表或模型类添加逻辑以标记和更改表单以反映文件确实已上载,但仍然提供了在需要时进行更改的选项。
任何人都有一些建议吗?