2011-09-13 12 views

答えて

3

はい、可能です。 byte[]に保存して、セッション属性として保存してください。

byte[] fileContent = getItSomehow(); 
session.setAttribute("fileContent", fileContent); 
// ... 

ただしbyte[]のすべてのbyteが効果的にサーバーのメモリの1つのバイトを食べることを認識する必要があります。したがって、100MBの大規模なファイルを1つだけ使用して100の同時ユーザー・セッションがある場合、すでに1GBのサーバー・メモリーが消費されています。サーバーに十分なメモリがなく、多くの訪問者がいる場合は、OutOfMemoryErrorになる危険があります。あなたがこの方向に行く前に二度考えてください。

+0

ありがとうございます。それを行うための最良の方法は何ですか? –

+0

私はディスクに保存するか、またはメモリに保存することを意味しますか? –

+1

ディスクファイルシステム上の一時フォルダに格納します。 Apache Commons FileUploadは、すでに100KBを超えるファイルについてはデフォルトでこれを行っています。一方、 'File#createTempFile()'を使うとより細かい制御ができます。 – BalusC

関連する問題