日期:2014-05-20  浏览次数:20887 次

急!commons-fileupload上传文件找不到DeferredFileOutputStream类问题!
首先上传时总是报这个错误:
  0:59:39,937 ERROR [jsp]:253 - Servlet.service() for servlet jsp threw exception
  java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream
at org.apache.commons.fileupload.disk.DiskFileItemFactory.createItem(DiskFileItemFactory.java:196)
at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:358)
at org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest.parse

jsp 页面代码:

<form id="form1" action="StuImpAct.jsp" onsubmit="return Check();" method="post" enctype="multipart/form-data"> 
<div > 
<div align="center" style="margin-top:0px">
请选择文件:<input type="FILE" id="DpotImp" name="DpotImp" size="50" value="" > 
</div> 
<div>&nbsp;<div>
<div align="center"> 
<input type="submit" class="submit" value=" 确 定 " > 
</div> 
</form> 

StuImpAct.jsp代码 <%String a = "aa";System.out.print(a);%>

在这个jsp代码中我并没有写上传的代码,我只是想看看能不能跳转过来,现在的问题是没有跳转到这个页面就已经报错了。



  可是我已经把commons-io-1.4.jar已经部署到项目中去了,而且我也在这个jar文件中找到这个类,在tommcat部署的项目中也找到了这个jar包!
  上网查了很多这方面的问题,大部门都是没有导入commons-io包,但是我已经导入了,而且反复部署了。

  我用的是myeclips5.5 + tommcat5.5 + tcommons-fileupload-1.2.1.

  请各位大侠指教!!万分感谢!!

 

------解决方案--------------------
既然用到了spring为什么不用<html:file property="FORM要对应的上传文件类型"></html:file>
------解决方案--------------------
首先看下 页面的值 FILE 是否 跟 FORM里的 属性 是对应的 FILE类
------解决方案--------------------
既然采用了struts2为什么不采用下面方式呢
HTML code

< body > 
    < s:form action ="fileUpload" method ="POST" enctype ="multipart/form-data" > 
        < s:file name ="myFile" label ="File" />     
        < s:submit /> 
    </ s:form > 
</ body >

------解决方案--------------------
学习
------解决方案--------------------
你在eclipse里open type

输入DeferredFileOutputStream 

看能不能找到,状态栏写的jar文件是不是你的工程里的
------解决方案--------------------
你把你ACTIONFORM 的类型看清楚点,最好贴上来看看
------解决方案--------------------
java.lang.NoClassDefFoundError

1、把项目清空一下试试~
2、检查一下jar包是否正确导入

------解决方案--------------------
手动在jsp里import common的jar

试试