- 浏览: 820081 次
- 性别:
- 来自: 北京、四川
文章分类
最新评论
-
sunbeamzheng:
总结的很好,好好看看。 拷贝问题确实很需要注意,特别是影不影响 ...
java深拷贝与浅拷贝 -
xmh8023:
...
获取POST数据的值 -
xmh8023:
我访问别的服务器怎么办?急求
获取POST数据的值 -
xmh8023:
String urlString="http://l ...
获取POST数据的值 -
lv12312:
Tomcat 7的老版本么?有bug的,https://iss ...
JMX问题
html源码upload.html很简单:
java源码Uplad.java是:
web.xml源码:
为什么运行不了呢?Tomcat一直显示如下提示:
87行是
今天我也遇到了这个问题,是因为common-io.jar包没有导入的原因,已经解决了。不过还是感谢博主的这篇文章,谢过了!
下载 commons-io-1.2.zip : http://jakarta.apache.org/site/downloads/downloads_commons-io.cgi 如果没有下载这个library,会出现下面这个Exception,这个花了我不了的时间找. java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream
谢谢。。我也有这个问题啊。。。
<h1> 文件上传演示</h1> <form name="uploadform" method="POST" action="upload" ENCTYPE="multipart/form-data"> <table border="1" width="450" cellpadding="4" cellspacing="2" bordercolor="#9BD7FF"> <tr> <td width="100%" colspan="2"> 文件1:<input name="a" size="40" type="file"> </td> </tr></table>
java源码Uplad.java是:
import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.util.Iterator; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; public class Upload extends HttpServlet { private static final long serialVersionUID = 1L; public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html; charset=GB2312"); PrintWriter out = response.getWriter(); try { DiskFileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload sevletFileUpload = new ServletFileUpload(factory); // 设置允许用户上传文件大小,单位:字节,这里设为2m sevletFileUpload.setSizeMax(2 * 1024 * 1024); // 设置最多只允许在内存中存储的数据,单位:字节 factory.setSizeThreshold(4096); // 设置一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录 factory.setRepository(new File("d:\\upload\\temp")); // 开始读取上传信息 List fileItems = sevletFileUpload.parseRequest(request); // 依次处理每个上传的文件 Iterator iter = fileItems.iterator(); // 正则匹配,过滤路径取文件名 String regExp = ".+\\\\(.+)$"; // 过滤掉的文件类型 String[] errorType = { ".exe", ".com", ".cgi", ".asp" }; Pattern p = Pattern.compile(regExp); while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); // 忽略其他不是文件域的所有表单信息 if (!item.isFormField()) { String name = item.getName(); long size = item.getSize(); if ((name == null || name.equals("")) && size == 0) continue; Matcher m = p.matcher(name); boolean result = m.find(); if (result) { for (int temp = 0; temp < errorType.length; temp++) { if (m.group(1).endsWith(errorType[temp])) { throw new IOException(name + ": 非法文件类型禁止上传"); } } try { // 保存上传的文件到指定的目录 // 在下文中上传文件至数据库时,将对这里改写开始 item.write(new File("d:\\upload\\"+ m.group(1))); out.print(name + " " + size + "<br>"); // 在下文中上传文件至数据库时,将对这里改写结束 } catch (Exception e) { out.println(e); } } else { throw new IOException("fail to upload"); } } } } catch (IOException e) { out.println(e); } catch (FileUploadException e) { out.println(e); } } }
web.xml源码:
<servlet> <servlet-name>upload</servlet-name> <servlet-class>Upload</servlet-class> </servlet> <servlet-mapping> <servlet-name>upload</servlet-name> <url-pattern>/upload</url-pattern> </servlet-mapping>
为什么运行不了呢?Tomcat一直显示如下提示:
引用
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Servlet execution threw an exception
root cause
java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream
org.apache.commons.fileupload.disk.DiskFileItemFactory.createItem(DiskFileItemFactory.java:191)
org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:350)
org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126)
Upload.doPost(Upload.java:87)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.17 logs.
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Servlet execution threw an exception
root cause
java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream
org.apache.commons.fileupload.disk.DiskFileItemFactory.createItem(DiskFileItemFactory.java:191)
org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:350)
org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126)
Upload.doPost(Upload.java:87)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.17 logs.
87行是
List fileItems = sevletFileUpload.parseRequest(request);这一行,不知道为啥会出现这样的错误。把程序简化成单个文件上传的代码也是出现一样的问题。也照apche的官方网站去看了那个指南,照那个做的,也是这里出错。实在是搞不懂了,为什么看到的都是好好的,到我这里就出错了呢?是哪里少做了什么吗?能想到的就只有那个jar文件导入有误。
- upload.rar (338.5 KB)
- 描述: 整个代码
- 下载次数: 389
评论
7 楼
hualikejava
2013-12-09
我也遇到这个问题,我直接添加了一个commons-io1.2.jar 完美解决问题。
http://www.mkyong.com/struts/java-lang-noclassdeffounderror-orgapachecommonsiooutputdeferredfileoutputstream/
http://www.mkyong.com/struts/java-lang-noclassdeffounderror-orgapachecommonsiooutputdeferredfileoutputstream/
6 楼
ddnzero
2013-04-14
谢谢了 同样的问题
5 楼
gongstring
2009-09-26
fczhangsong 写道
下载 commons-io-1.2.zip :
http://jakarta.apache.org/site/downloads/downloads_commons-io.cgi
如果没有下载这个library,会出现下面这个Exception,这个花了我不了的时间找.
java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream
http://jakarta.apache.org/site/downloads/downloads_commons-io.cgi
如果没有下载这个library,会出现下面这个Exception,这个花了我不了的时间找.
java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream
今天我也遇到了这个问题,是因为common-io.jar包没有导入的原因,已经解决了。不过还是感谢博主的这篇文章,谢过了!
4 楼
k7710
2009-02-22
// Create a factory for disk-based file items
FileItemFactory factory = new DiskFileItemFactory();
// Create a new file upload handler
ServletFileUpload upload = new ServletFileUpload(factory);
// Parse the request
List /* FileItem */ items = upload.parseRequest(request);
FileItemFactory factory = new DiskFileItemFactory();
// Create a new file upload handler
ServletFileUpload upload = new ServletFileUpload(factory);
// Parse the request
List /* FileItem */ items = upload.parseRequest(request);
3 楼
east_java
2008-12-25
fczhangsong 写道
下载 commons-io-1.2.zip : http://jakarta.apache.org/site/downloads/downloads_commons-io.cgi 如果没有下载这个library,会出现下面这个Exception,这个花了我不了的时间找. java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream
谢谢。。我也有这个问题啊。。。
2 楼
canofy
2008-01-08
谢谢了~~~~
没有想到还需要相应的包~~~
没有想到还需要相应的包~~~
1 楼
fczhangsong
2007-12-28
下载 commons-io-1.2.zip :
http://jakarta.apache.org/site/downloads/downloads_commons-io.cgi
如果没有下载这个library,会出现下面这个Exception,这个花了我不了的时间找.
java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream
http://jakarta.apache.org/site/downloads/downloads_commons-io.cgi
如果没有下载这个library,会出现下面这个Exception,这个花了我不了的时间找.
java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream
发表评论
-
Java并发编程:volatile关键字解析
2015-07-30 11:30 580转:http://www.cnblogs.com/dolp ... -
Java内存模型
2015-07-29 13:55 8671. 概述 多任务和 ... -
自定义classloader
2015-07-29 13:54 634转:http://tiantian911.iteye.com ... -
自定义ClassLoader实现java应用核心逻辑模块热部署
2015-07-29 13:51 957转:http://blog.csdn.net/zhangda ... -
java classloader原理初探
2015-07-29 10:14 621转:http://www.cnblogs.com/ ... -
Java 内存分配全面浅析
2015-07-29 08:52 566转:http://blog.csdn.net/shimi ... -
http stream
2014-07-29 16:38 1059StringBuilder sb = new String ... -
Tomcat远程调试
2011-04-09 12:33 1031需要在Tomcat中的catalina.bat中添加如下的一行 ... -
用jmx监控多台服务器(tomcat)
2010-09-08 18:25 4527因为需要写一个后台监控服务器的程序,涉及到jmx,也涉 ... -
call cmd /c start 一点疑问
2010-09-01 10:16 2206call "cmd /c start aaa.bat ... -
Windows计划任务之schtasks
2010-08-30 13:21 3537创建:SCHTASKS /Create /RU SYSTEM ... -
ajax返回值中有中文存在的乱码现象
2010-08-27 16:28 1401ajax返回值中有中文存在的乱码现象,解决就加入下面一行代码即 ... -
MIME TYPE
2010-08-26 16:23 7203最近要做需要在页面上放音频的东西,因此需要用到mime typ ... -
JMX问题
2010-08-20 17:20 5453这个问题貌似是启动tomcat之后就获取不到jmx的链接了,不 ... -
Eclipse控制台乱码
2010-08-05 15:18 4845安装了Eclipse,在运行tomcat时,控制台的中文显示乱 ... -
JMX服务端和客户端的代码
2010-07-27 15:37 3509服务端代码如下 package com.rmi; i ... -
JMX连接Tomcat的JMX测试类
2010-07-27 15:33 3256首先是为了使tomcat支持JMX,必须在tomcat的启动项 ... -
JMX的一个链接类
2010-07-27 09:37 1415package com.pachira.oamp.jmxS ... -
java中文转unicode码
2010-07-22 11:04 43307转载地址:http://www.iteye.com/topic ... -
获取POST数据的值
2010-07-21 14:17 9854当method为POST,Content-Type为 ...
相关推荐
jsp上传组件包含commons-fileupload.jar和commons-io.jar,目前最流行的jsp上传组件
commons-lang-2.3.jar,在使用组件实现文件上传时候要注意前后台的一致性,注意在后台定义File文件对象名要与jsp页面中的file标签name名字一致,前台form标签属性一定要设置为enctype="multipart/form-data",而且...
commons-fileupload-1.3.2.jar和commons-io-2.5.jar
文章为本人所写,向初学者展示了如何进行基于commons-fileupload组件的上传下载的详细开发过程。细致的说明相信能给您带来帮助。
用commons-fileupload-1.2.2.jar和commons-io-2.0.1.jar组件,可实现 上传
commons-fileupload-1.0上传组件使用实例.以及使用组件的乱码问题。
Apache上传下载组件commons-fileupload,commons-ioApache上传下载组件commons-fileupload,commons-ioApache上传下载组件commons-fileupload,commons-io
struts2中用于文件上传的两个jar包,非常实用。最简单的文件上传,在做项目之前需要导入的jar包组件:commons-fileupload-1.2.2.jar、commons-io-2.2.jar(依赖包)
用于servlet文件上传的组件,方便初学java web开发的人下载使用
用开源的FileUpload组件,可以很方便的给自己的系统添加功能强大的文件上传模块。 该资源文件是两个jar打包成的压缩文件。
采用apache commons 项目中的fileupload组件,实现了文件上传功能,它能够便利而简单地使得web应用程序和servlet具备高性能的文件上传能力,减小了直接操作输入输出流的系统开销。
Commons-fileupload ),该组件性能优异,并且其API使用极其简单,可以让开发人员轻松实现web文件上传功能,因此在web开发中实现文件上传功能,通常使用Commons-fileupload组件实现。注意:使用Commons-fileupload...
common-fileupload组件是apache的一个开源项目之一,可以从http://jakarta.apache.org/commons/fileupload/下载。该组件简单易用,可实现一次上传一个或多个文件,并可限制文件大小。 -下载后解压zip包,将commons-...
Apache Commons FileUpload组件提供了一种简单而灵活的方法,可以向servlet和web应用程序添加对多部分文件上传功能的支持。commons-fileupload-1.2.2 commons-io-2.0.1
一个简单的jsp上传实例,使用commons-fileupload实现。其代码已经上传在另外一个资源里。该文档也在附录中附了代码。
commons fileupload 上传组件 jar包 源码 commons fileupload 上传组件 jar包 源码 commons fileupload 上传组件 jar包 源码
文件上传组件commons-fileupload-1.2.1英文API[CHM版]
commons-fileupload上传组件,J2EE中JSP、Servlet所用到的文件上传组件包括commons-fileupload-1.2.1.jar和commons-io-1.3.2.jar