在上午使用ace:fileEntry组件上传pdf文件。我的问题我不知道如何在上传文件时更改文件名。该文件使用originalfilename上传。我知道如果我设置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" />
答案 0 :(得分:1)
您听起来好像您希望上传文件的临时存储位置可用作上传文件的永久存储位置,因此您无需触摸它。这是错的!上传文件最初结束的位置实际上是临时,以节省服务器内存使用量。它会定期清洁或启动/关闭。
在侦听器方法中,您应该自己获取上传文件的内容InputStream
或byte[]
,您应该将其写入永久存储位置。在此步骤中,您可以自由指定自己的文件名。
另请参阅这个与PrimeFaces <p:fileUpload>
密切相关的问题(其源代码ICEfaces对于主要部分被盗 copypasted 重新分配)Where is the p:fileUpload uploaded file saved and how do I change it?详细解答如何妥善处理。