1

我正在使用 ace:fileEntry 组件上传 pdf 文件。我的问题我不知道如何在上传文档时更改文件名。该文件使用原始文件名上传。我知道如果我设置 useOriginalFilename=false,它将有一个唯一的名称,但我希望文件系统中上传的文件应该具有我想要传递的自定义文件名。

我的xhtml代码如下

<ace:fileEntry id="file-entry" label="Attachment"
                    absolutePath="STR_UPLOADED_FILES"
                    maxFileCount="1" 
                    maxFileCountMessage="Limited to 1 files uploaded concurrently." 
                    fileEntryListener="#{strformbean.fileuploadListener}" 

                    maxFileSize="6291456" 
                    maxFileSizeMessage="Submitted file is too large.Max size allowed is 6MB" 
                    maxTotalSize="6291456" 
                    maxTotalSizeMessage="Total size of submitted files is too large." 
                    required="false" 
                    requiredMessage="The file is required to submit this form." 
                    useOriginalFilename="true"  
                    useSessionSubdir="false" />
4

1 回答 1

1

您听起来好像您希望上传文件的临时存储位置可用作上传文件的永久存储位置,因此您不需要触摸它。这是错误的!为了节省服务器内存使用,上传文件最初最终的位置实际上是临时的。它将在间隔或启动/关闭时进行清洁。

在侦听器方法中,您应该自己获取上传文件的内容,InputStream或者byte[]您​​应该将其写入永久存储位置。在此步骤中,您可以自由指定自己的文件名。

另请参阅有关 PrimeFaces 的密切相关的问题<p:fileUpload>(其源代码 ICEfaces 大部分被盗 复制粘贴重新分发)p:fileUpload 上传的文件保存在哪里以及如何更改它?有关如何正确处理它的详细答案。

于 2012-12-31T11:27:46.050 回答