SASTRUTS-128 で登録したのだけど、SAStruts で commons-fileupload 1.2.1 を使うと、アップロード時に一時ファイルが作成されたら、それを自動削除する機能が動きませぬ。まぁ、そもそもは commons-fileupload が 1.2 から 1.2.1 に上がったときに仕組みを変えるという、結構、大胆な感じなことをやってくれたため。そんなわけで、commons-fileupload 1.2.1 を利用したい場合にはどうすべきか。Fess では早速対応してみた。
まず、FessMultipartRequestHandler みたいなものを用意して、commons-fileupload 1.2.1 に対応する必要がある。これ を参照。そんで、web.xmlに追加する。
<listener> <listener-class>org.apache.commons.fileupload.servlet.FileCleanerCleanup</listener-class> </listener>
さらに、struts-config.xmlを以下のように変更しておく。
<controller maxFileSize="1024K" bufferSize="1024" processorClass="org.seasar.struts.action.S2RequestProcessor" multipartClass="jp.sf.fess.upload.FessMultipartRequestHandler"/>
以上。