- 浏览: 829800 次
- 性别:
- 来自: 北京、四川
文章分类
最新评论
-
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 636转:http://www.cnblogs.com/dolp ... -
Java内存模型
2015-07-29 13:55 9141. 概述 多任务和 ... -
自定义classloader
2015-07-29 13:54 689转:http://tiantian911.iteye.com ... -
自定义ClassLoader实现java应用核心逻辑模块热部署
2015-07-29 13:51 1022转:http://blog.csdn.net/zhangda ... -
java classloader原理初探
2015-07-29 10:14 668转:http://www.cnblogs.com/ ... -
Java 内存分配全面浅析
2015-07-29 08:52 608转:http://blog.csdn.net/shimi ... -
http stream
2014-07-29 16:38 1142StringBuilder sb = new String ... -
Tomcat远程调试
2011-04-09 12:33 1061需要在Tomcat中的catalina.bat中添加如下的一行 ... -
用jmx监控多台服务器(tomcat)
2010-09-08 18:25 4576因为需要写一个后台监控服务器的程序,涉及到jmx,也涉 ... -
call cmd /c start 一点疑问
2010-09-01 10:16 2249call "cmd /c start aaa.bat ... -
Windows计划任务之schtasks
2010-08-30 13:21 3595创建:SCHTASKS /Create /RU SYSTEM ... -
ajax返回值中有中文存在的乱码现象
2010-08-27 16:28 1446ajax返回值中有中文存在的乱码现象,解决就加入下面一行代码即 ... -
MIME TYPE
2010-08-26 16:23 7258最近要做需要在页面上放音频的东西,因此需要用到mime typ ... -
JMX问题
2010-08-20 17:20 5505这个问题貌似是启动tomcat之后就获取不到jmx的链接了,不 ... -
Eclipse控制台乱码
2010-08-05 15:18 4893安装了Eclipse,在运行tomcat时,控制台的中文显示乱 ... -
JMX服务端和客户端的代码
2010-07-27 15:37 3573服务端代码如下 package com.rmi; i ... -
JMX连接Tomcat的JMX测试类
2010-07-27 15:33 3297首先是为了使tomcat支持JMX,必须在tomcat的启动项 ... -
JMX的一个链接类
2010-07-27 09:37 1462package com.pachira.oamp.jmxS ... -
java中文转unicode码
2010-07-22 11:04 43406转载地址:http://www.iteye.com/topic ... -
获取POST数据的值
2010-07-21 14:17 9923当method为POST,Content-Type为 ...
相关推荐
**Commons-Fileupload组件** Commons-Fileupload是Apache Commons项目的一个子项目,专门设计用于处理Servlet容器中的文件上传请求。它提供了一套API,使得开发者可以方便地解析HTTP请求中的多部分(multipart)...
标题中的"commons-fileupload-1.3.3&commons-fileupload-1.3.3架包和代码.rar"提到了Apache Commons FileUpload的1.3.3版本的库及其源码。Apache Commons FileUpload是一个Java库,专门用于处理HTTP协议中的多部分...
标题"commons-fileUpload组件"指的是Apache Commons FileUpload,这是一个Java库,专门用于处理HTTP请求中的文件上传。它与另一个组件Apache Commons IO紧密协作,为Java应用程序提供方便、高效的文件上传功能。 ...
`commons-fileupload-1.3.3.jar` 是这个库的特定版本,它包含了处理文件上传的核心组件。该库提供了一套完整的API,允许开发者解析HTTP请求中的文件项,进而可以将这些文件存储到服务器上。这个版本的更新可能包括了...
FileUpload组件的核心功能是解析HTTP请求中的多部分数据(Multipart Form Data),这是HTML表单中用于上传文件的标准格式。它的工作原理如下: 1. **解析请求**:当用户通过HTML表单提交包含文件的请求时,服务器端...
Apache Commons FileUpload和Commons IO两个库是Java中处理文件上传的关键组件,它们为SpringMVC和MyBatis这样的框架提供了强大的支持。本篇文章将深入探讨这两个库以及它们在图片处理中的作用。 首先,`commons-...
Commons FileUpload和Commons IO是Java开发中两个非常重要的库,尤其在处理文件上传功能时。这两个库由Apache软件基金会维护,是许多Java Web应用程序的标准组成部分。 `commons-fileupload-1.3.2.jar`是Apache ...
common-fileupload组件是apache的一个开源项目之一,可以从http://jakarta.apache.org/commons/fileupload/下载。该组件简单易用,可实现一次上传一个或多个文件,并可限制文件大小。 -下载后解压zip包,将commons-...
【基于commons-fileupload组件的上传下载】是一种在J2EE环境下处理文件上传和下载功能的技术。这个组件是Apache Commons项目的一部分,提供了强大的文件上传能力,适用于JSP和Servlet应用程序。以下将详细介绍如何...
### 使用commons-fileupload-1.0进行文件上传的实例及乱码处理 #### 一、commons-fileupload简介 `commons-fileupload`是Apache Commons项目下的一个子项目,它提供了强大的文件上传功能,允许用户轻松地将文件从...
Apache Commons是Apache软件基金会的一个项目,致力于提供高质量的Java组件,而FileUpload就是其中的一个组件。 在Web开发中,文件上传通常是一个复杂的过程,涉及到多个步骤和潜在的问题,如文件大小限制、多部分...
Apache Commons FileUpload库简化了这一过程,提供了高效且灵活的文件上传解决方案。 Apache Commons是Apache软件基金会的一个项目集合,它提供了许多实用工具类和组件,用于解决Java编程中的常见问题。"commons...
《Apache Commons FileUpload组件详解》 Apache Commons FileUpload是一个用于处理HTTP请求中多部分数据的Java库,尤其在上传文件时极为有用。标题中的"commons-fileupload-1.4-bin.zip"表明这是一个包含Apache ...
Apache Commons FileUpload组件就是为了解决这一问题而设计的,它提供了一套完整的解决方案,使得开发者可以方便、高效地处理HTTP请求中的多部分数据,即文件上传。本篇文章将深入解析这个组件,帮助开发者更好地...
Apache上传下载组件commons-fileupload,commons-ioApache上传下载组件commons-fileupload,commons-ioApache上传下载组件commons-fileupload,commons-io
commons-lang-2.3.jar,在使用组件实现文件上传时候要注意前后台的一致性,注意在后台定义File文件对象名要与jsp页面中的file标签name名字一致,前台form标签属性一定要设置为enctype="multipart/form-data",而且...