一時ファイルでの作業を助けてくれるプラグインが標準搭載されている。
play.data.parsing.TempFilePlugin
アップロードされたファイルを受信する機能のために作られており、一時的な作業フォルダを作成してくれる。
play.tmp
で定義したフォルダの配下に、”upload/?????
” というフォルダを作成する。??????
の部分はSystem.currentTimeMillis()
とstatic変数のカウンタから命名しているので、複数インスタンス起動してplay.tmp
を同値にしない限りは重複することは無い。
File tmp = TempFilePlugin.createTempFolder();
File tmpFile = new File(tmp, "temporary.txt");
作成したフォルダと配下のファイルはレスポンスを返す直前に削除されるので、後始末についてはあまり考えなくて良い。(受信ファイルを永続化しないでおくとそのまま消滅してしまうのと同じ挙動)
レスポンスを返す直前に削除が行われるため、このフォルダで作成したファイルをそのまま renderBinary()
で返却することはできない。別フォルダに移動したりするなど、ひと工夫が必要。