当前位置:编程学习 > JAVA >>

Common-fileUpload上传文件异常问题

现在在使用Struts2+ swfUpload+ Common-FileUpload做文件上传,上传文件过程中如果取消了文件上传,后台就抛出以下异常,请大家帮忙看看?
抛出的异常:
org.apache.commons.fileupload.FileUploadBase$IOFileUploadException: Processing of multipart/form-data request failed. Stream ended unexpectedly
at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:367)
at org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest.parse(JakartaMultiPartRequest.java:93)
at org.apache.struts2.dispatcher.multipart.MultiPartRequestWrapper.<init>(MultiPartRequestWrapper.java:75)
at org.apache.struts2.dispatcher.Dispatcher.wrapRequest(Dispatcher.java:708)
at org.apache.struts2.dispatcher.ng.PrepareOperations.wrapRequest(PrepareOperations.java:131)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:83)
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:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:879)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:617)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1760)
at java.lang.Thread.run(Thread.java:619)
后台文件上传Action类如下:

public class FileUploadAction extends ActionSupport {
/**
 * 
 */
private static final long serialVersionUID = 2660658197476593891L;
private File file;             //该File 要与swfUpload中的 file_post_name值相同
private String fileFileName;
private String fileContentType;
private String name;

@SuppressWarnings("deprecation")
public String execute() throws Exception {
// 实现上传
InputStream is = new FileInputStream(file);
String root = ServletActionContext.getServletContext().getRealPath("/upload");

System.out.println("**Path : "+root+this.getFileFileName());

File deskFile = new File(root, this.getFileFileName());

OutputStream os = new FileOutputStream(deskFile);

byte[] bytefer = new byte[1024];
int length = 0;
while ((length = is.read(bytefer)) != -1) 
{
os.write(bytefer, 0, length);
}
os.close();
is.close();
return "success";
}

//set,get方法略..


大家帮忙看看,有没有碰到过的..



异常 --------------------编程问答-------------------- 可能文件大小问题?你换个小文件试试 --------------------编程问答-------------------- 因为你中断文件上传,请求文件流就没了,所以报这个异常,你可以做个异常转换,转换成自定义异常界面提示上传已中断 --------------------编程问答-------------------- 你说的对,我刚刚尝试了一下,但是如何解决取消上传大文件时后台的异常呢? --------------------编程问答--------------------
引用 1 楼 asd65285 的回复:
可能文件大小问题?你换个小文件试试

刚刚按你方法尝试了,后台仍然抛出同样的异常. --------------------编程问答-------------------- public String execute() throws Exception

throws Exception

去掉,然后手动加 try catch

不要让程序抛出异常,之后catch里自己写异常信息。 --------------------编程问答--------------------
引用 5 楼 rihaduo202 的回复:
public String execute() throws Exception

throws Exception

去掉,然后手动加 try catch

不要让程序抛出异常,之后catch里自己写异常信息。

你说的我照做了,但是后台仍然报同样的异常..
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,