先把用到的代码贴出来。
代码源自网络,由于我在应用时出了一些问题,所以贴出来,以便帮助大家。哈哈,看了记着评论……
第一个index.jsp
2.上传成功页面(上传成功并显示图片): upSuc.jsp
3.ACTION类: UploadAction.java
4.struts.xml
5.web.xml
################################################################
OK,代码贴完了。运行后,会出现以下问题:
严重: Servlet.service() for servlet jsp threw exception
java.lang.RuntimeException: Unable to load bean org.apache.struts2.dispatcher.multipart.MultiPartRequest (jakarta) - [unknown location]
at com.opensymphony.xwork2.inject.ContainerBuilder$4.create(ContainerBuilder.java:136)
at com.opensymphony.xwork2.inject.ContainerImpl.getInstance(ContainerImpl.java:476)
at com.opensymphony.xwork2.inject.ContainerImpl.getInstance(ContainerImpl.java:486)
at com.opensymphony.xwork2.inject.ContainerImpl$9.call(ContainerImpl.java:517)
at com.opensymphony.xwork2.inject.ContainerImpl.callInContext(ContainerImpl.java:542)
at com.opensymphony.xwork2.inject.ContainerImpl.getInstance(ContainerImpl.java:515)
at org.apache.struts2.dispatcher.Dispatcher.wrapRequest(Dispatcher.java:697)
at org.apache.struts2.dispatcher.FilterDispatcher.prepareDispatcherAndWrapRequest(FilterDispatcher.java:330)
at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:390)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
Unable to load bean ..... 没办法加载某些包,所以:
必学要有commons-fileupload-1.2.1.jar 和 commons-io-1.4.jar !!!!。切记!!
然后会出现下面问题:
错误信息如下:
Content-Type not allowed: pic "upload__29a248bd_1298df50ce0__8000_00000008.tmp" image/pjpeg
解决办法如下:
这里你要聪明点,只改动上面贴出文件的对应位置就可以。
<actionname="addMenu"class="minMenuAction"method="addMenu">
<interceptor-refname="fileUpload">
<paramname="allowedTypes">image/bmp,image/png,image/gif,image/jpeg,image/jpg</param>
<paramname="maximumSize">1024000</param>
</interceptor-ref>
<interceptor-refname="defaultStack"></interceptor-ref>
<paramname="savePath">/upfile/images</param>
<resultname="input">/page/back/category_list.jsp</result>
<resulttype="redirect-action">showMenu</result>
</action>
原因:ie会把 jpg、jpeg翻译成image/pjpeg,png翻译成image/x-png。而火狐则很标准:jpg、jpeg翻译成image/jpeg,png翻译成image/png。
解决方法:
<paramname="allowedTypes">
image/bmp,image/png,image/gif,image/jpeg,image/jpg,image/x-png, image/pjpeg
</param>
该文章整理自网络几篇解决方案的整合,我亲身测试,希望对大家有帮助,也是实际中我遇到的问题,哈哈,就到这里。以后多多光顾啊。