【问题标题】:How do you get the File Upload Module Param (Form Field) to work in Joomla 2.5 (backend)你如何让文件上传模块参数(表单字段)在 Joomla 2.5(后端)中工作
【发布时间】:2013-05-15 13:51:29
【问题描述】:

朋友们,

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

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

【问题讨论】:

  • 我不确定你能否让它工作。每当我在组件中使用它时,我都必须自己添加上传处理。我认为没有它就行不通。你想用这个文件做什么?如果文件是图像,您也许可以使用 Media 字段类型。
  • 文件很可能是 pdf/xml/doc。据我了解,大多数人手动进行上传处理;我只是觉得,既然有一个模块参数,Joomla 开发人员可能已经把它写在......(或者它是一场野鹅追逐)

标签: joomla joomla2.5 joomla-module


【解决方案1】:

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

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

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

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

如果这有帮助,请告诉我。

【讨论】:

  • 哈哈是的,这正是我发现的。媒体/文件列表将是一种解决方法,但我觉得它不会太生产级/专业。似乎组件是我唯一真正干净的选择。我希望我们能弄清楚这是否最终可能。如果文件功能内置在 Joomla 模块中,对每个人来说都会更干净、更容易。不过谢谢你;非常感谢您的时间和回复!
  • 如果您找到合适的解决方案,请告诉我们。
【解决方案2】:

如果你有一个配套的组件和表格类,你可以很容易地使用文件字段类型来处理所有的前端 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);

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

有人对此有什么建议吗?

【讨论】:

    猜你喜欢
    • 2013-09-25
    • 2012-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-30
    • 2012-04-26
    • 1970-01-01
    • 2017-10-16
    相关资源
    最近更新 更多