- PR -

ファイルアップロードのコード解析

1
投稿者投稿内容
naito
常連さん
会議室デビュー日: 2007/08/07
投稿数: 36
投稿日時: 2007-11-09 19:09
こんばんは。


現在、ファイルをアップロードするサーブレットを解析しているのですが、このサーブレットではある程度の大きさのファイルはアップロードできたのですが、5MB程度の大きさになるとエラーが出てしまいます。


その部分のコードは以下の部分だと思うのですが、原因はどこにあるのでしょうか?

御教授お願いいたします。



以下、コード

// FileUploadで解析
FileItem[] params = null;
try {
DiskFileUpload fileupload = new DiskFileUpload();
params = (FileItem[])fileupload.parseRequest
(request, 256, 2048000, System.getProperty("java.io.tmpdir")).toArray(new FileItem[0]);
} catch(FileUploadException e) {
// throw new ServletException(e);
this.getServletContext().getRequestDispatcher("/JSP/RecruitInfoBbs/RecNewBbs").forward(request,response);
}

yuzy
大ベテラン
会議室デビュー日: 2002/02/14
投稿数: 117
投稿日時: 2007-11-09 19:31
引用:

params = (FileItem[])fileupload.parseRequest
(request, 256, 2048000, System.getProperty("java.io.tmpdir")).toArray(new FileItem[0]);



parseRequestメソッドのパラメータの意味、わかっていますか?

http://commons.apache.org/fileupload/apidocs/org/apache/commons/fileupload/DiskFileUpload.html
を読んでみてください。
naito
常連さん
会議室デビュー日: 2007/08/07
投稿数: 36
投稿日時: 2007-11-09 19:45
yuzy様、返答ありがとうございます。

parseRequestメソッドのパラメータを調べてみました。
sizeThreshold - The max size in bytes to be stored in memory.
sizeMax - The maximum allowed upload size, in bytes.

sizeMaxから見れば先ほど自分が載せたコードから2048000bytes、つまり2M程度のファイルしかアップできないということでしょうか?
sizeThresholdの意味は少しわからないので調べてみたいと思います。


ある程度大きなファイルまでアップしたい場合は、sizeMaxを変更すればいいということでしょうか?
naito
常連さん
会議室デビュー日: 2007/08/07
投稿数: 36
投稿日時: 2007-11-09 20:04
ありがとうございました。


自己解決いたしました。
簡単なことで申し訳ありませんでした。
1

スキルアップ/キャリアアップ(JOB@IT)