gpt4 book ai didi

jsf - 使用 JSF 1.2 添加输入文件

转载 作者:行者123 更新时间:2023-12-04 05:16:10 25 4
gpt4 key购买 nike

我需要以专门用于上传文件的形式上传。在我的项目中,我可以使用 JSF 1.2 和 RichFaces 3.3.3,但我不能使用 <rich:fileUpload/>因为我的客户想要一个简单的输入,就像 <input type="file"/> .

如果可以,我会使用Primeface 或Tomahawk 的文件上传,但我被禁止,我不能使用其他库,我也不能使用Servlet 3.0 下的Apache 文件上传。我现在能做什么?我见过其他类似的问题,但他们可以使用其他库,我不能,我受到限制......

最佳答案

自从我不得不为 JSF 编写 MIME 解析器以来已经有一段时间了,但这就是我对这个过程的内存。

您将需要编写一个解析器来从 multi-part/formdata 中提取数据。有效载荷。有个好overview of multi-part/formdata on the W3 site .

您需要决定是否定位:

  • 具有普通表单/控件的非 JSF servlet
  • 带有 JSF 表单和自定义文件上传控件的 JSF servlet

  • 以普通 servlet 为目标

    只要上传 POST 操作不需要调用依赖于 JSF 上下文(托管 bean 等)的代码,这将是更简单的方法。

    您的 servlet 解析来自输入流的数据并根据需要对其进行操作。

    定位 JSF View /操作

    在这里,您需要修饰请求(最好使用 HttpServletRequestWrapper )以提供解析后的 parameters到 JSF 框架。这通常会在 filter 中完成从 HTTP header 中检测帖子类型。在调用任何表单操作之前,需要决定文件数据的存储位置以及您将如何将该数据公开给托管 bean。

    您还需要考虑是否要为文件上传输入类型创建自定义 JSF 控件,或者是否可以使用纯 HTML 元素。

    值得检查您无法使用的解析器/控件的功能,以确保您提供简单的功能 - 例如最大有效负载大小,以防止攻击者将千兆字节的数据上传到您的应用程序。

    关于jsf - 使用 JSF 1.2 添加输入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14241877/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com