查看完整版本: [-- 使用apache的io包中IOUtils上传不了超过300M的文件 --]

风信Java论坛 ›› Struts 讨论专区 ›› 使用apache的io包中IOUtils上传不了超过300M的文件 登录 -> 注册

1F 使用apache的io包中IOUtils上传不了超过300M的文件   菜鸟 Post by : 2009-08-06 10:28:57.0

项目中需要上传一些比较大的备份附件,动不动就几百兆,客户反应超过300M就传不上去了,我测试了一下果真如此,后台也不报错,犯晕了,使用的是Apache的IO包。部分代码:

上传附近方法:
private boolean upload(String storePath, InputStream is){
boolean isUploaded = false;
String directory = getDirectory(storePath); // 获取文件所在目录
boolean isExist = existsDirectory(directory); // 判断目录是否存在
if(!isExist)
createDirectory(directory); // 不存在创建
OutputStream os = null;
try {
os = new FileOutputStream(storePath);
IOUtils.copy(is, os);
isUploaded = true;
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if(os!=null){
        try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(is!=null){
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return isUploaded;
}


Action中获取到页面上传的FormFile,用的Struts
FormFile contractAttach = contractForm.getContractAttach();
InputStream is = contractAttach.getInputStream();  // 获取输入流
boolean isSucc = upload(storePath, is);  // 调用上面的上传文件方法

不明原因,请有经验的老鸟指教。PS:低于300M的文件上传毫无问题。

2F    唧唧 Post by : 2009-08-06 10:30:45.0
是不是 应用服务器限制了?比如 tomcat 和 虚拟内存的大小
3F    菜鸟 Post by : 2009-08-06 10:31:02.0
找到解决方案,在struts的配置文件尾部追加以下配置即可提高struts文件上传尺度的上限,默认250M。
<controller maxFileSize="1024M" />

风信Java论坛 ›› Struts 讨论专区 ›› 使用apache的io包中IOUtils上传不了超过300M的文件 登录 -> 注册

查看完整版本: [-- 使用apache的io包中IOUtils上传不了超过300M的文件 --]
CopyRight © 2008-2009 JavaWind.Net Studio All Rights Reserved
Powered By JWind.BBS Vesion 1.0.0 Beta1 Processed in 6 ms,0 (Queries)  Gzip enabled
粤ICP备07511478号