gpt4 book ai didi

jsf-2 - JSF2(和 Primefaces): Form for fileupload within another "normal" form, 如何做到这一点?

转载 作者:行者123 更新时间:2023-12-01 07:36:12 24 4
gpt4 key购买 nike

我有以下要求:我们有一个页面,要求用户将一些数据输入到由各种输入字段和下拉列表组成的表单中。特别的是,恕我直言,在这个表单中是文件上传的一部分。用户应该能够上传一些(多个)文件。然后当他/她在页面末尾按下提​​交时,整个输入将被提交并写入一个对象。在此对象中,还必须保存上传文件的路径。我想用primefaces的(3.4)组件实现文件上传。

现在是我的挑战:fileUpload 需要它自己的 h:form,enctype 为“multipart/form-data”。其他数据在“正常”范围内。对我来说,这意味着我必须在页面中将表单一个接一个地放置。但是fileUpload组件应该显示在其他表单的中间。

我怎样才能做到这一点?有什么想法吗?

最好的问候,弗洛里安

最佳答案

Now to my challenge: The fileUpload requires its own h:form with enctype "multipart/form-data". The other data is within a "normal" . For me this means that I must place the forms after each other within the page.

老实说,这毫无意义。我不确定你是怎么得出这个结论的。也许您是基于对问题的错误观察而得出此结论的。也许您使用了错误的 bean 作用域,并且在处理表单提交时遇到了所有到目前为止输入的输入和以前上传的文件的空值。你应该使用 @ViewScoped只要您通过多个 ajax 请求与同一 View 进行交互,您就希望同一个 bean 实例一直存在。

您可以完美地放置“普通”输入字段,例如 <h:inputText>multipart/form-data 的形式完全相同编码。使用这种编码,HTTP 请求只是以一种稍微不同的格式发送,为二进制内容留出空间。另见 params not getting passed to backing bean for h:commandLink under rich:popupPanel and t:dataList以获得详细的背景解释。

另见:


与具体问题无关,我不确定如何解释

In this object also the path to the uploaded files must be saved

但我想指出,您绝对不能依赖发送到服务器的完整客户端文件路径。仅当由于 IE 浏览器中的安全漏洞而使用该浏览器时,才会发生这种情况。您应该对 InputStream 风格的文件 contents 感兴趣或 byte[] .如果有必要,您应该自己自动生成一个具有唯一名称的(临时)文件(并确保具有相同文件名的第二个上传文件不会覆盖它)。另见 How to get the file path from HTML input form in Firefox 3

关于jsf-2 - JSF2(和 Primefaces): Form for fileupload within another "normal" form, 如何做到这一点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13468380/

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