关于SpringMVC超过限制大小文件上传的问题,谢谢。

Java_er 2014-01-15 10:20:47

关于SpringMVC超过限制大小文件上传的问题,谢谢。


1、SpringMVC的配置文件里面可以配置限制上传文件的大小,比如40MB

但是,如果在页面上上传超过40MB ,则他都不进入到Action,则直接就报错了。

被拦截了。

2、客户端判断的话,
IE8、IE9、火狐好像支持都不一样,有说用Flash的,有说用HTML5的,
个人感觉HTML5不太靠谱,毕竟现在的应用肯定是要支持IE8、IE9的。


不知道怎么处理了,谢谢各位。
困扰很久了。

其实,有个很笨的搞法,是在配置文件里面把值设置的很大,但是,这样太不友好了。
...全文
11380 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_23254579 2015-05-15
  • 打赏
  • 举报
回复
楼上的不行啊
dxqrr 2014-03-19
  • 打赏
  • 举报
回复
http://913.iteye.com/blog/1521186 这个可以解决,LZ结贴吧
买房动力十足 2014-03-18
  • 打赏
  • 举报
回复
1、html5 2、Flash 3、Activex控件 4、自己单独开发控件
Java_er 2014-03-18
  • 打赏
  • 举报
回复
引用 11 楼 F2004 的回复:
[quote=引用 8 楼 Javainging 的回复:] 客户端做文件大小检查的话,又要支持IE8,只能用1楼的办法了。
1楼的办法 要允许加载项, 要刷新页面,用户体验很差。[/quote] 那你自己做一个IE插件吧。类似于支付宝插件。用户只需要安装一次,以后就可以直接使用了。[/quote] 额 这个貌似见过用C开发的,呵呵 不会开发这种控件呢。
有巢鱼 2014-01-23
  • 打赏
  • 举报
回复
引用 8 楼 Javainging 的回复:
客户端做文件大小检查的话,又要支持IE8,只能用1楼的办法了。
1楼的办法 要允许加载项, 要刷新页面,用户体验很差。[/quote] 那你自己做一个IE插件吧。类似于支付宝插件。用户只需要安装一次,以后就可以直接使用了。
ylovep 2014-01-23
  • 打赏
  • 举报
回复
则直接就报错了。 楼主详细错误是什么
Java_er 2014-01-22
  • 打赏
  • 举报
回复
引用 7 楼 amu9394 的回复:
用前端驗證吧,可以像1樓那樣,或者用struts的。
Struts能解决这个问题? Struts2也是一样的在配置文件里面配置的。
Java_er 2014-01-22
  • 打赏
  • 举报
回复
引用 6 楼 F2004 的回复:
SpringMVC中设置上传文件的大小限制时,有个lazyxxx属性,具体叫什么记不太清了。 作用是可以让你自己去处理文件太大的例外。 但是,就用户体验而言,尽量在客户端做文件大小的检查。 因为如果你限制大小为1MB,而用户上传了一个100MB的文件,上传了半天,然后你告诉人家文件太大,不允许上传 客户端做文件大小检查的话,又要支持IE8,只能用1楼的办法了。
1楼的办法 要允许加载项, 要刷新页面,用户体验很差。
amu9394 2014-01-22
  • 打赏
  • 举报
回复
用前端驗證吧,可以像1樓那樣,或者用struts的。
有巢鱼 2014-01-21
  • 打赏
  • 举报
回复
SpringMVC中设置上传文件的大小限制时,有个lazyxxx属性,具体叫什么记不太清了。 作用是可以让你自己去处理文件太大的例外。 但是,就用户体验而言,尽量在客户端做文件大小的检查。 因为如果你限制大小为1MB,而用户上传了一个100MB的文件,上传了半天,然后你告诉人家文件太大,不允许上传 客户端做文件大小检查的话,又要支持IE8,只能用1楼的办法了。
Java_er 2014-01-20
  • 打赏
  • 举报
回复
大神在哪里?
panzhixiong_cn 2014-01-16
  • 打赏
  • 举报
回复
感觉像是Java Web开发的问题。
Java_er 2014-01-16
  • 打赏
  • 举报
回复
引用 1 楼 huxiweng 的回复:

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<script type="text/javascript"> 
var isIE = /msie/i.test(navigator.userAgent) && !window.opera; 
function fileChange(target,id) { 
var fileSize = 0; 
var filetypes =[".jpg",".png",".rar",".txt",".zip",".doc",".ppt",".xls",".pdf",".docx",".xlsx"]; 
var filepath = target.value; 
var filemaxsize = 1024*2;//2M 
if(filepath){ 
var isnext = false; 
var fileend = filepath.substring(filepath.indexOf(".")); 
if(filetypes && filetypes.length>0){ 
for(var i =0; i<filetypes.length;i++){ 
if(filetypes[i]==fileend){ 
isnext = true; 
break; 
} 
} 
} 
if(!isnext){ 
alert("不接受此文件类型!"); 
target.value =""; 
return false; 
} 
}else{ 
return false; 
} 
if (isIE && !target.files) { 
var filePath = target.value; 
var fileSystem = new ActiveXObject("Scripting.FileSystemObject"); 
if(!fileSystem.FileExists(filePath)){ 
alert("附件不存在,请重新输入!"); 
return false; 
} 
var file = fileSystem.GetFile (filePath); 
fileSize = file.Size; 
} else { 
fileSize = target.files[0].size; 
} 

var size = fileSize / 1024; 
if(size>filemaxsize){ 
alert("附件大小不能大于"+filemaxsize/1024+"M!"); 
target.value =""; 
return false; 
} 
if(size<=0){ 
alert("附件大小不能为0M!"); 
target.value =""; 
return false; 
} 
} 
</script> 
</head> 
<body> 
<input type="file" name="contractFileName" style="width: 500px;" onchange="fileChange(this);"/> 
</body> 
</html> 
这个 要弹出一个确认框,不太友好吧,用户允许之后,要刷新页面,这个不希望这样啊,用户体验太差了。
teemai 2014-01-15
  • 打赏
  • 举报
回复

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<script type="text/javascript"> 
var isIE = /msie/i.test(navigator.userAgent) && !window.opera; 
function fileChange(target,id) { 
var fileSize = 0; 
var filetypes =[".jpg",".png",".rar",".txt",".zip",".doc",".ppt",".xls",".pdf",".docx",".xlsx"]; 
var filepath = target.value; 
var filemaxsize = 1024*2;//2M 
if(filepath){ 
var isnext = false; 
var fileend = filepath.substring(filepath.indexOf(".")); 
if(filetypes && filetypes.length>0){ 
for(var i =0; i<filetypes.length;i++){ 
if(filetypes[i]==fileend){ 
isnext = true; 
break; 
} 
} 
} 
if(!isnext){ 
alert("不接受此文件类型!"); 
target.value =""; 
return false; 
} 
}else{ 
return false; 
} 
if (isIE && !target.files) { 
var filePath = target.value; 
var fileSystem = new ActiveXObject("Scripting.FileSystemObject"); 
if(!fileSystem.FileExists(filePath)){ 
alert("附件不存在,请重新输入!"); 
return false; 
} 
var file = fileSystem.GetFile (filePath); 
fileSize = file.Size; 
} else { 
fileSize = target.files[0].size; 
} 

var size = fileSize / 1024; 
if(size>filemaxsize){ 
alert("附件大小不能大于"+filemaxsize/1024+"M!"); 
target.value =""; 
return false; 
} 
if(size<=0){ 
alert("附件大小不能为0M!"); 
target.value =""; 
return false; 
} 
} 
</script> 
</head> 
<body> 
<input type="file" name="contractFileName" style="width: 500px;" onchange="fileChange(this);"/> 
</body> 
</html> 

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧