2

朋友们,

我正在尝试让文件上传表单字段在 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" ,但是我不确定它会去哪里...我尝试将字段包装在表单字段中并使用它,我也尝试将其设置为配置和字段元素无济于事。

非常感谢任何帮助,谢谢朋友。

4

2 回答 2

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);

此代码片段假定字段名称是文档,并且您希望存储路径指向的任何位置。但是,这将帮助您保存实际文件;您将需要向表或模型类添加逻辑以标记和更改表单以反映文件确实已上传,但仍提供更改选项(如果需要)。

有人对这个大声笑有什么建议吗?

于 2013-08-20T16:02:11.407 回答
1

我最近遇到了同样的问题,从组件/模块的后端上传文件。

根据我的发现,我可以告诉你:

  • 使用该类型file只会生成 html,但不会生成功能。
  • 可以上传文件的类型,一般是图片等。media我对 pdf/xml/doc 没有成功(尤其是让媒体管理器显示它们,以便我可以选择一个 - 有一个仅显示媒体文件的视图)。对于某些文档类型,您需要配置一些安全检查以允许上传这些文件。
  • 类型fildlist会生成一个包含可用文件的下拉列表,因此您可以选择一个。

可能的解决方案(我没有尝试过,但重新考虑我尝试过的方法,它可能会起作用)。1 上传带有媒体的文件。2. 保存刷新页面。3. 从下拉列表中选择文件。

让我知道这是否有帮助。

于 2013-05-22T20:04:07.583 回答