- 浏览: 830089 次
- 性别:
- 来自: 北京、四川
文章分类
最新评论
-
sunbeamzheng:
总结的很好,好好看看。 拷贝问题确实很需要注意,特别是影不影响 ...
java深拷贝与浅拷贝 -
xmh8023:
...
获取POST数据的值 -
xmh8023:
我访问别的服务器怎么办?急求
获取POST数据的值 -
xmh8023:
String urlString="http://l ...
获取POST数据的值 -
lv12312:
Tomcat 7的老版本么?有bug的,https://iss ...
JMX问题
upload.java
demo.jsp
需要的包有:commons-io commons-fileupload
import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; 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 { // 解决中文乱码 String encoding="utf-8"; request.setCharacterEncoding(encoding); response.setContentType("text/html; charset=utf-8"); PrintWriter out = response.getWriter(); try { DiskFileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload sevletFileUpload = new ServletFileUpload(factory); // 设置允许用户上传文件大小,单位:字节,这里设为2m sevletFileUpload.setSizeMax(2 * 1024 * 1024 * 100); // 设置最多只允许在内存中存储的数据,单位:字节 factory.setSizeThreshold(4096); // 设置一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录 factory.setRepository(new File("d:\\upload\\temp")); // 开始读取上传信息 List fileItems = sevletFileUpload.parseRequest(request); // 依次处理每个上传的文件 Iterator iter = fileItems.iterator(); // 正则匹配,过滤路径取文件名 String regExp = ".+\\\\(.+)$"; //上传的路径 String path="D:\\upload\\"; // 过滤掉的文件类型 String[] errorType = { ".exe", ".com", ".cgi", ".asp",".class" }; String[] accessType={".rar",".txt"}; Pattern p = Pattern.compile(regExp); while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); // 忽略其他不是文件域的所有表单信息 if (!item.isFormField()) { String name = item.getName(); long size = item.getSize(); double mSize=size/(1024); 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 + ": 非法文件类型禁止上传"); } } // for (int temp = 0; temp < accessType.length; temp++) { // // if (!m.group(1).endsWith(accessType[temp])) { // // throw new IOException(name + ": 非法文件类型禁止上传"); // // } // // } try { // 保存上传的文件到指定的目录 item.write(new File(path+ m.group(1))); // 在下文中上传文件至数据库时,将对这里改写开始 String str=m.group(1); int start=str.lastIndexOf(".")+1; int end=str.length(); String fileName=str.substring(0,start-1); String type=m.group(1).substring(start, end); Date date=new Date(); Calendar calendar=new GregorianCalendar(); String printDate=calendar.get(calendar.YEAR)+"年"; printDate+=(calendar.get(calendar.MONTH)+1)+"月"; printDate+=calendar.get(calendar.DAY_OF_MONTH)+"日"; SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy年MM月dd日"); //simpleDateFormat.format(date).toString(); out.print("文件上传成功:<br>"); out.print("文件名:"+name + " " +"<br>"); out.print("上传后的文件:"+path+m.group(1)+"<br>"); out.print("文件大小:"+ mSize + "K<br>"); out.print("文件格式:"+type+"<br>"); out.print("文件名:"+fileName+"<br>"); out.print("上传时间: "+printDate+"<br>"); out.print("simpleDateFormat:"+simpleDateFormat.format(date).toString()); // 在下文中上传文件至数据库时,将对这里改写结束 } catch (Exception e) { out.println(e); } } else { throw new IOException("上传失败!"); } } } } catch (IOException e) { out.println(e); } catch (FileUploadException e) { out.println(e); } } }
demo.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>DEMO</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> upload <form action="upload" method="post" enctype="multipart/form-data" name="form1"> <input type="file" name="file" /> <input type="submit" name="submit" value="上传" /> </form> <br> </body> </html>
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <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> </web-app>
需要的包有:commons-io commons-fileupload
发表评论
-
Java并发编程:volatile关键字解析
2015-07-30 11:30 637转:http://www.cnblogs.com/dolp ... -
Java内存模型
2015-07-29 13:55 9161. 概述 多任务和 ... -
自定义classloader
2015-07-29 13:54 692转:http://tiantian911.iteye.com ... -
自定义ClassLoader实现java应用核心逻辑模块热部署
2015-07-29 13:51 1023转:http://blog.csdn.net/zhangda ... -
java classloader原理初探
2015-07-29 10:14 669转:http://www.cnblogs.com/ ... -
Java 内存分配全面浅析
2015-07-29 08:52 609转:http://blog.csdn.net/shimi ... -
http stream
2014-07-29 16:38 1145StringBuilder sb = new String ... -
Tomcat远程调试
2011-04-09 12:33 1062需要在Tomcat中的catalina.bat中添加如下的一行 ... -
用jmx监控多台服务器(tomcat)
2010-09-08 18:25 4577因为需要写一个后台监控服务器的程序,涉及到jmx,也涉 ... -
call cmd /c start 一点疑问
2010-09-01 10:16 2250call "cmd /c start aaa.bat ... -
Windows计划任务之schtasks
2010-08-30 13:21 3596创建:SCHTASKS /Create /RU SYSTEM ... -
ajax返回值中有中文存在的乱码现象
2010-08-27 16:28 1447ajax返回值中有中文存在的乱码现象,解决就加入下面一行代码即 ... -
MIME TYPE
2010-08-26 16:23 7262最近要做需要在页面上放音频的东西,因此需要用到mime typ ... -
JMX问题
2010-08-20 17:20 5507这个问题貌似是启动tomcat之后就获取不到jmx的链接了,不 ... -
Eclipse控制台乱码
2010-08-05 15:18 4894安装了Eclipse,在运行tomcat时,控制台的中文显示乱 ... -
JMX服务端和客户端的代码
2010-07-27 15:37 3575服务端代码如下 package com.rmi; i ... -
JMX连接Tomcat的JMX测试类
2010-07-27 15:33 3301首先是为了使tomcat支持JMX,必须在tomcat的启动项 ... -
JMX的一个链接类
2010-07-27 09:37 1465package com.pachira.oamp.jmxS ... -
java中文转unicode码
2010-07-22 11:04 43412转载地址:http://www.iteye.com/topic ... -
获取POST数据的值
2010-07-21 14:17 9925当method为POST,Content-Type为 ...
相关推荐
《Apache Jakarta Commons 使用手册》是一部详细介绍Apache Jakarta Commons项目下的各种Java组件的专业书籍。该书由Will Iverson编写,旨在为开发者提供一个全面深入理解并应用这些组件的学习资源。Apache Jakarta ...
《Jakarta Commons Cookbook》是Java开发者的一份宝贵资源,它包含了一系列实用的工具类和组件,可以帮助开发者在日常编程工作中提高效率。Jakarta Commons是Apache软件基金会的一个项目,旨在为Java社区提供一系列...
Jakarta Commons 是一个 Apache 软件基金会的项目,它包含了一系列独立、可重用的 Java 类库,旨在提供常见编程任务的解决方案。这些类库覆盖了从输入输出处理到字符串操作,再到网络通信等多个领域。Jakarta ...
Jakarta Commons 是 Apache 软件基金会的一个项目集合,它提供了大量的可重用 Java 类库,旨在简化开发人员的工作。这些类库覆盖了从文件上传、缓存处理到网络通信等多个领域,极大地丰富了Java 开发者的工具箱。...
Apache Jakarta Commons 是一组由 Apache 软件基金会提供的 Java 库,这些库旨在解决常见的编程问题,提供便捷的功能,减少开发人员重复编写基础代码的工作。Jakarta Commons 包含了许多子项目,每个子项目专注于...
Jakarta Commons是一系列开源、模块化的Java库,旨在解决软件开发中的常见问题,提高开发效率,减少重复工作。通过阅读本书,读者将能够了解Jakarta Commons的历史背景、组织结构、设计理念及其在实际项目中的应用。...
commons-fileupload 使得在你可以在应用和Servlet中容易的加入强大和高性能的文件上传能力 commons-io 用来帮助进行IO功能开发.它包含三个主要的领域:Utility classes-提供一些静态方法来完成公共任务.Filters-...
- **Jakarta Commons FileUpload** 是一个用于处理HTTP文件上传的Java库,它基于**RFC1867**标准来解析和处理文件上传请求。 - **用户指南** 主要介绍了如何使用FileUpload来处理来自客户端的文件上传请求,包括基本...
《Jakarta Commons 烹饪书》是一本详细介绍Jakarta Commons组件使用和开发的资源,主要面向Java开发者。Jakarta Commons是Apache软件基金会的一个项目,它包含了一系列实用的、独立的Java类库,旨在简化开发过程,...
Jakarta Commons是Apache软件基金会的一个项目集合,它提供了许多Java开发中常用的工具类和组件。这个项目旨在减少重复的工作,通过共享和重用代码,提高开发效率。Jakarta Commons包含了多个子项目,每个子项目专注...
Apache Jakarta Commons是Apache软件基金会的一个项目,它提供了大量的Java类库,这些类库解决了常见的编程任务,包括输入/输出、数学计算、字符串处理、日期和时间操作等。 本书的核心知识点可以分为以下几个部分...
Apache Jakarta Commons是Apache软件基金会的一个项目集合,它提供了一系列实用工具类库,旨在简化Java开发。这个项目的主要目标是创建可重用的Java组件,这些组件涵盖了从数据处理到网络通信的各种领域。Iverson的...
commons-fileupload 使得在你可以在应用和Servlet中容易的加入强大和高性能的文件上传能力 commons-io 用来帮助进行IO功能开发.它包含三个主要的领域:Utility classes-提供一些静态方法来完成公共任务.Filters-...
Apache Jakarta Commons是Java开发的一个重要组件集合,它为开发者提供了大量实用的工具类和组件,极大地简化了常见的编程任务。这个压缩包“Pro.Jakarta.Commons.rar”包含的是关于Jakarta Commons的详细文档,主要...
Jakarta Commons是Apache软件基金会的一个项目集合,它包含了一系列实用工具类库,为Java开发者提供了大量方便的功能。这个"2013最新版的jakarta-commons.zip"压缩包很可能包含了当年Jakarta Commons项目的各个子...
Jakarta Commons 是一个由 Apache 软件基金会维护的 Java 开源项目集合,它提供了大量的实用工具类和组件,极大地丰富了 Java 的标准库功能。这个项目旨在解决常见的编程问题,提高开发效率,提供了一系列模块化的...
Jakarta Commons是Apache软件基金会的一个项目集合,它提供了一系列实用工具类和组件,极大地丰富了Java开发者在构建应用程序时的工具箱。这个jar包在J2EE(Java 2 Platform, Enterprise Edition)开发中尤其常见,...
Apache的FTP库是Java开发中一个非常实用的工具,它主要包含了两个核心的JAR包:`commons-net-1.4.1.jar`和`jakarta-oro-2.0.8.jar`。这两个包提供了丰富的功能,允许开发者在Java应用中实现FTP(文件传输协议)的...