如题所述,如果文件在执行上传操作过程中,因为意外或者因为需要取消其操作,那么此时就会抛出异常,而不能执行取消操作,而此时如何才能进行取消操作,而不抛出异常呢?
我用的是FileOutputStream和FileInputStream也就是I/O流进行文件的上传操作?webjava
我用的是FileOutputStream和FileInputStream也就是I/O流进行文件的上传操作?webjava
解决方案 »
- servlet中,请问怎样输出一个有链接的文字,连到jsp页面里,这样写错在哪里?
- 这。。好诡异啊
- 关于JS访问Servlet的路径问题
- 请问大家在java 的web方式下做过画曲线的东西吗?大家都采用什么技术?
- 求正则式,解析html
- tomcat中配置oracle数据源的问题~
- sql server连接错误求解!
- 一个表单提交的问题!
- JAVA错误求帮忙解决一下
- eclipse 如何在高分屏下正常显示?对话框界面字体和图标都太小
- struts2 对象属性注入不进去, 报错:target is null for setProperty(null, "x", [Ljava.lang.Stri
- javascript弹性回到顶部代码
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:359)
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.FilterDispatcher.prepareDispatcherAndWrapRequest(FilterDispatcher.java:327)
at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:367)
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:859)
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(Thread.java:619)
Caused by: org.apache.commons.fileupload.MultipartStream$MalformedStreamException: Stream ended unexpectedly
at org.apache.commons.fileupload.MultipartStream$ItemInputStream.makeAvailable(MultipartStream.java:964)
at org.apache.commons.fileupload.MultipartStream$ItemInputStream.read(MultipartStream.java:887)
at java.io.InputStream.read(InputStream.java:85)
at org.apache.commons.fileupload.util.Streams.copy(Streams.java:94)
at org.apache.commons.fileupload.util.Streams.copy(Streams.java:64)
at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:354)
... 17 more
2013-01-31 16:09:21,775 - org.apache.struts2.interceptor.FileUploadInterceptor -52604 [http-8080-2] WARN FileUploadInterceptor:45 - Processing of multipart/form-data request failed. Stream ended unexpectedly
************************************************************************************************
************************************************************************************************
public String uploadVideo(){
FileOutputStream fos = null;
FileInputStream fis = null;
ThreadPoolExecutor threadPool = new ThreadPoolExecutor(3, 100, 10,
TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(3),
new ThreadPoolExecutor.DiscardOldestPolicy());
Thread thread=new Thread();
threadPool.execute(thread);
thread.start();
synchronized(thread){
try{
String realPath="D:/company/upload/video";
String tempName=sdf.format(new Date())+"-"+videoName;
if(video==null||video.equals("")){
System.out.println("file");
return ERROR;
}
if(videoName==null||videoName.equals("")){
System.out.println("videoname"+videoName);
return ERROR;
}
if(videoEx==null||videoEx.equals("")){
System.out.println("videoex"+videoEx);
return ERROR;
}
fos = new FileOutputStream(realPath + "\\" + tempName);
fis = new FileInputStream(getVideo());
byte[] buffer = new byte[1024];
int len = 0;
if(buffer.length>0){
while ((len = fis.read(buffer)) > 0) {
fos.write(buffer, 0, len);
}
}
return SUCCESS;
}catch(Exception e){
log.error("文件上传失败:",e);
return ERROR;
}finally{
close(fos, fis);
thread.interrupt();
threadPool.shutdown();
}
}
}如上是我的代码和异常,不知如何解决此类问题?