JAVA上传文件时遇到了这个错误,希望大家可以帮忙解决下

奔跑的迷糊虫 2013-07-26 10:14:49
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.tom.filter.EncodingFilter.doFilter(EncodingFilter.java:81)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.OutOfMemoryError: Java heap space
...全文
218 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Coolyqq 2013-07-29
  • 打赏
  • 举报
回复
就是要让它报错啊,if file.getLength>2M throw new ApplicationException('big');,扔出异常,然后框架可以接受这个异常,你在把异常的配置下,配置一个文件过大提示的jsp就可以了,这也就是为什么struts2 execute方法会抛出异常的原因,可以统一管理
Coolyqq 2013-07-26
  • 打赏
  • 举报
回复
第一自己写,你已有file这个了,if file.getLength>2M throw new ApplicationException('big'); 或者struts过滤器不是有个fileupload参数配置吗
宇宙浪子 2013-07-26
  • 打赏
  • 举报
回复
你应该过滤一下文件大小的,设置最大支持的文件大小
AlexMoonshadow 2013-07-26
  • 打赏
  • 举报
回复
你去网上搜一下,很多啊。
S117 2013-07-26
  • 打赏
  • 举报
回复
你上传的文件多大呀,能把内存弄爆了! 这人写的不错,你去看看吧!
奔跑的迷糊虫 2013-07-26
  • 打赏
  • 举报
回复
引用 1 楼 AlexMoonshadow 的回复:
你的文件太大了,最好能设置下上传文件的大小。
代码已经在下楼贴出来了,请问怎么设置文件大小
奔跑的迷糊虫 2013-07-26
  • 打赏
  • 举报
回复
我用的是STURTS1框架,把上传的代码贴出来,但是不知道怎么设置文件大小
UpfileForm upfileForm = (UpfileForm) form;
		FormFile file = upfileForm.getFile();
		FileOutputStream fileOutput;
		// 如果文件夹不存在就创建一个
		if (file != null) {
			try {
				File file1 = new File(getServlet().getServletContext()
						.getRealPath("\\upload"));
				if (!file1.exists()) {
					file1.mkdir();
					File file_swf = new File(getServlet().getServletContext()
							.getRealPath("\\upload\\swf"));
					if (!file_swf.exists()) {
						file_swf.mkdir();
					}
				}
                fileOutput = new FileOutputStream(getServlet()
						.getServletContext().getRealPath("\\upload\\")
						+ "\\" + file.getFileName());
				fileOutput.write(file.getFileData());
				fileOutput.flush();
				fileOutput.close();
AlexMoonshadow 2013-07-26
  • 打赏
  • 举报
回复
你的文件太大了,最好能设置下上传文件的大小。
奔跑的迷糊虫 2013-07-26
  • 打赏
  • 举报
回复
引用 7 楼 Coolyqq 的回复:
第一自己写,你已有file这个了,if file.getLength>2M throw new ApplicationException('big'); 或者struts过滤器不是有个fileupload参数配置吗
具体的代码可以写下吗,因为我在下边的程序里面限制了,代码我没贴出来,但是只能限制小的文件,大的文件还是报错。

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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