0

サーバーログから、FileItemでgetInputStreamを呼び出そうとすると:

6/22/12 14:31:14 ERROR c.s.u.WizardUploadReceiver:225          | Jumploader: Problem uploading zip13afcchr.psd - Failed to handle post properly
java.io.FileNotFoundException: uploadtemp\upload__3e026c78_13815404c62__7ff2_00000141.tmp (The system cannot find the file specified)
    at java.io.FileInputStream.open(Native Method) ~[na:1.6.0_23]
    at java.io.FileInputStream.<init>(FileInputStream.java:106) ~[na:1.6.0_23]
    at org.apache.commons.fileupload.disk.DiskFileItem.getInputStream(DiskFileItem.java:236) ~[commons-fileupload-1.2.2.jar:1.2.2]
...

私が知る限り、関連するFileとFileItem、およびDiskFileItemFactoryは、サーブレットメソッドが返されるまでスコープ外(ガベージコレクションの対象)ではないことを確認しました。

FileUploadがこれらの一時ファイルを時期尚早に削除する原因となる可能性のある他の潜在的な状況を探しています。

追加情報:この問題は、特定のクライアントがファイルをアップロードしたときにのみ発生します。他のクライアントの同じサーブレットに送信された同じファイルは、この問題を引き起こさないようです。問題を抱えているクライアントとそうでないクライアントの違いはまだわかりません。

4

1 に答える 1

-1

ファイルのサイズが 10 Kb を超えている可能性があります (デフォルトのしきい値)。DiskFileItemFactory でリクエストを解析するときは、次のような新しいしきい値を設定する必要があります。

DiskFileItemFactory factory = new DiskFileItemFactory();

ServletFileUpload upload = new ServletFileUpload(factory);

**factory.setSizeThreshold(102400);**

List /* FileItem */ items = upload.parseRequest(request);
于 2013-08-01T10:57:58.447 に答える