package com.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletConfig;
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.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.jivesoftware.openfire.plugin.db.DbManager;
/******************************************************************
** 文 件 名: Up.java
** Copyright (c) 2007-2011 dhdu@qq.com
** 创 建 人: dhdu@qq.com
** 日 期: 2011-05-04
** 修 改 人:
** 日 期:
** 描 述: upload Servlet
** jsp page <form action="u" method="post" enctype="multipart/form-data" >
** 版 本:
**
** ==============================================================
**
** 修改记录
**
** 版本号 修改编号 修改者 修改日期 修改说明
** ====== ======== ======== ========== ===========
** 0001
** 0002
**
********************************************************************/
public class Up extends HttpServlet {
private static final long serialVersionUID = 1L;
public void init(ServletConfig config) throws ServletException {
super.init(config);
}
public void destroy() {
super.destroy();
}
private void up(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String p = "", filename = null;
Map map = new HashMap();
byte[] bytes = null;
try {
// 文件大小限制10M
int maxPostSize = 10 * 1024 * 1024;
// 文件工厂类
DiskFileItemFactory factory = new DiskFileItemFactory();
// factory.setSizeThreshold(4096);
ServletFileUpload upload = new ServletFileUpload(factory);
// upload.setHeaderEncoding("UTF-8");
// upload.setSizeMax(maxPostSize);
List fileItems = upload.parseRequest(request);
if (fileItems != null && fileItems.size() > 0) {
Iterator iter = fileItems.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
if (item.isFormField()) {
if (!"submit".equals(item.getFieldName())) {
p = item.getString("UTF-8");
System.out.println(item.getFieldName() + " :" + p);
map.put(item.getFieldName(), p);
}
} else {
bytes = item.get();
if (bytes.length > 0) {
filename = item.getName();
System.out.println(filename);
// item.write(new File("d:/"+filename));
}
}
}
}
if (bytes != null && bytes.length > 0)
DbManager.getInstance().saveFile(bytes, filename, map);
out.write("ok!!!" + p);
} catch (Exception e) {
e.printStackTrace();
out.write("Exception!!!");
} finally {
}
}
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doPost(req, resp);
}
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
up(req, resp);
}
/*
* ------这个是后台用jsp实现
*
* <% DiskFileItemFactory factory = new DiskFileItemFactory();
* ServletFileUpload upload = new ServletFileUpload(factory); try {List
* items = upload.parseRequest(request);Iterator itr = items.iterator();
* while (itr.hasNext()) {FileItem item = (FileItem) itr.next();if
* (item.isFormField()) { System.out.println("表单参数名:" + item.getFieldName()
* + ",表单参数值:" + item.getString("UTF-8"));} else
* {System.out.println("上传文件的大小:" + item.getSize());
* System.out.println("上传文件的类型:" + item.getContentType());
* System.out.println("上传文件的名称:" + item.getName()); File tempFile = new
* File(item.getName()); File file = new File(request.getRealPath("/") +
* "photofiles", tempFile.getName()); item.write(file); String fname =
* item.getName(); %> <script language="javascript"> alert("上传成功!");
* </script> <% } } } catch (Exception e) { e.printStackTrace(); %> <script
* language="javascript"> alert("上传失败,请重新上传!"); </script> <% }
*/
}
分享到:
相关推荐
1、利用org.apache.commons.fileupload编写的文件上传和下载的前台和后台代码,前台代码是Jsp,后台是用servlet处理,共2个例子,各有不同,比较使用; 2、有用jspSmartupload制作一个文件上传和下载的例子,其制作...
利用org.apache.commons.fileupload编写的文件上传和下载的前台和后台代码,共两个例子,个有不同,费用使用。另有用jspSmartupload制作一个文件上传和下载的例子,其制作的例子能够上传到数据库中。
使用Apache 的 Commons FileUpload 实现上传功能。代码中包含两种上传方式,普通上传和jquery后台上传。
1、利用org.apache.commons.fileupload编写的文件上传和下载的前台和后台代码,共两个例子,各有不同,非常使用。 2、另有用jspSmartupload制作一个文件上传和下载的例子,其制作的例子能够上传到数据库中。 3、注意...
适用jQuery的uploadify插件做的一个文件上传,后台用的是普通的Apache的commons-fileupload
最近用Swf做的一个文件上传例子,前台用的是SwfUpload插件,后台用的Apache的commons-fileupload
commons-fileupload.jar Apache Commons包中的一个,是一个通过Http接收上传的文件并处理结果文件的库 dom4j-1.4.jar 和 jaxen-1.1.1.jar 是一个Java的XML API,类似于jdom,用来读写XML文件的。Hibernate使用dom4...
jsp + jquery实现的漂亮上传 客户端使用了jquery的uploadify插件,...后台使用了Apache的Commons fileUpload 来完成对上传文件的读取与保存 压缩包里是个MyEclipse6.6的项目 改天再把教程写到我blog 希望有朋友喜欢
客服可以在后台管理系统中处理用户的询问以及投诉。 2.2. 功能架构 2.2.1. 系统功能图 2.2.2. 功能描述 后台管理系统:管理商品、订单、类目、商品规格属性、用户管理以及内容发布等功能。 前台系统:用户...
Jakarta commons docs API CHM 格式带索引和全文搜索,方便携带和查询。 Jakarta commons 包含很多可复用的通用组件。...jakarta-regexp 是一个100%纯java正则式处理包,是Jonathan Locke捐给Apache软件基金会的
资源简介 Jakarta commons docs API CHM 格式带索引和全文搜索,方便携带和查询。 Jakarta commons 包含很多可复用的通用...jakarta-regexp 是一个100%纯java正则式处理包,是Jonathan Locke捐给Apache软件基金会的
后台管理系统 ##1.0版本 系统搭建数据库建表脚本在根目录scripts下,部分模块有单独的建表脚本在各模块scripts下 脚本为mySql语句,其他数据库不宜直接使用 databaseBackUp为mysql数据库还原文件 包含 服务注册中心-...
(2)本程序使用了antlr.jar、commons-beanutils.jar、commons-digester.jar、commons-fileupload.jar、commons-logging.jar、commons-validator.jar、jakarta-oro.jar、jspSmartUpload.jar、jstl.jar、msbase.jar、...
上传一个很大的excel文件到server, server会解析这个excel, 然后一条一条的插入到数据库,整个过程要耗费很长时间,因此当用户点击上传之后,需要显示一个进度条,并且能够根据后台的接收的数据量和处理的进度及时...