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

アップロードされたファイルの一時的な保存場所は、アップロードされたファイルの永続的な保存場所として使用できるため、触れる必要がないことを期待しているように聞こえます。これは間違っています!アップロードされたファイルが最初に配置される場所は、サーバーのメモリ使用量を節約するための一時的なものです。間隔または起動/シャットダウンでクリーニングされます。

リスナー メソッドでは、アップロードされたファイルの内容を自分で取得するInputStreambyte[]、永続的な保存場所に書き込む必要があります。このステップでは、独自のファイル名を自由に指定できます。

PrimeFaces に関するこの密接に関連した質問も参照してください<p:fileUpload>(ICEfaces のソースコードの大部分は盗まれて コピーペーストされ、再配布されています)。詳細な回答については、適切に対処する方法をご覧ください。

于 2012-12-31T11:27:46.050 に答える