日期:2014-05-17  浏览次数:20669 次

FileUpload 遇到的小问题
struts 没有配置 <constant name="struts.multipart.maxSize" value="20971520"/>
就报错下面这个错误
org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException:
 the request was rejected because its size (3603280) exceeds the configured maximum (2097152)

配置以后没有报错误,但是上传不了文件了~!




<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@page import="java.io.*"%>
<%@page import="java.util.*"%>
<%@page import="org.apache.commons.fileupload.*"%>
<%@page import="org.apache.commons.fileupload.servlet.*"%>
<%@page import="org.apache.commons.fileupload.disk.*"%>

<%
String path = getServletContext().getRealPath("");
if (ServletFileUpload.isMultipartContent(request)) {
// ファクトリー生成
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(1426);
factory.setRepository(new File(path+"/music")); //一時的に保存する際のディレクトリ
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setSizeMax(10000 * 1024);
upload.setFileSizeMax(10000 * 1024);
List<FileItem> items;
try {
items = upload.parseRequest(request);
} catch (FileUploadException e) {
// エラー処理
throw new ServletException(e);
}
// 全フィールドに対するループ
for (Object val : items) {
FileItem item = (FileItem) val;
if (item.isFormField()) {
// type="file"以外のフィールド
out.println(item.getFieldName());
} else {
// type="file"のフィールド
File f = new File(item.getName());
try {
item.write(new File(path+"/music", f.getName()));
out.println(f.getName());
} catch (IOException e) {
throw e;
} catch (Exception e) {
throw new ServletException(e);
}

}
}
}

%>
java exception upload

------解决方案--------------------
一步一步找问题,先看一下页面有没问题,确定页面没问题后
再看一下提交后能不能得到文件