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制作一个文件上传和下载的例子,其制作...
标题中提到的"Apache文件上传组件jar包"实际上是指Apache Commons FileUpload库,它是一个开源项目,是Apache Commons组织的一部分。Apache Commons是Apache软件基金会维护的一系列Java实用工具类库,旨在提高开发者...
SWFUpload利用Flash插件实现了无刷新上传,提供进度反馈,而Apache Commons Fileupload则负责后台文件的接收和存储,两者结合,能构建出稳定可靠的文件上传系统。在实际项目中,根据具体需求对SWFUpload的配置和事件...
FileUpload是Apache Commons项目的一部分,提供了处理multipart/form-data请求(用于文件上传的标准HTTP类型)的功能。 【知识点三】:multipart/form-data multipart/form-data是HTTP协议中用于提交表单数据的一种...
Apache Commons FileUpload提供了解析多部分请求、存储上传文件到临时或指定位置的功能,使得在Java应用中处理文件上传变得简单。 1. **Apache Commons FileUpload的使用**: - 首先,你需要将`commons-fileupload...
结合SwfUpload和Apache Commons FileUpload,可以创建一个高效的文件上传系统,提供用户友好的界面和强大的后台处理能力。在实际应用中,还需要考虑安全性问题,如文件大小限制、非法文件类型的检查、防止重复上传等...
Uploadify允许用户在上传界面选择多个文件,而Apache Commons FileUpload负责处理这些文件的上传请求。在Servlet中,遍历FileItem集合,即可获取到所有被上传的文件,并对它们进行相应的处理。 知识点六:文件上传...
Apache Commons FileUpload是一个用于处理HTTP请求中multipart/form-data类型的工具库,它可以帮助开发者轻松地处理文件上传。与此同时,XMLHttpRequest(XHR)是浏览器提供的一种API,用于在后台与服务器进行异步...
使用Smart Upload时,你需要在JSP中引入Smart Upload的标签库,并在后台处理文件上传逻辑,过程相对复杂一些。 总的来说,Apache Commons FileUpload因其简单性和稳定性,成为许多开发者首选的文件上传工具。然而,...
Commons FileUpload是Apache组织提供的一款强大的Java文件上传处理组件,常用于Web应用中处理用户通过表单上传的文件。在Web开发中,尤其是在涉及到用户上传照片、文档等大文件时,FileUpload组件提供了方便、高效的...
- 在处理文件时,使用异步或后台处理,避免阻塞Web服务器。 总的来说,`commons-fileupload-1.1.1.jar` 和 `commons-io-1.2.jar` 是Java Web开发中实现文件上传功能不可或缺的工具,它们提供了强大且灵活的文件上传...
FileUpload是Java Servlet的一个实现,由Apache开源组织的Commons项目提供,它专门用于处理文件上传请求。FileUpload支持多部分表单数据(multipart/form-data),这是HTTP协议中用于上传文件的标准格式。通过使用...
总之,结合jQuery、SWFUpload和Apache Commons FileUpload,我们可以创建一个功能完备且用户体验良好的文件上传系统,包括多文件选择、进度反馈以及安全的服务器端处理。这个过程涉及到前端和后端的协作,需要对...
5. **服务器端处理**:在服务器端,使用Apache Commons FileUpload解析多部分请求,读取并存储上传的文件。服务器需要提供反馈,告知客户端每个文件的上传进度。 6. **错误处理**:在前后端都需要设置适当的错误...
在“DWR+FileUpload”场景中,DWR主要负责在后台处理文件上传请求,并将进度信息反馈给前端。 **文件上传** 文件上传是Web应用中用户交互的重要部分,允许用户将本地文件传输到服务器。在HTML5之前,文件上传通常...
2. **文件上传组件**:在JSP中,通常使用Apache的Commons FileUpload库来处理文件上传。这个库提供了解析HTTP请求中的多部分数据(multipart/form-data),并处理文件上传的功能。 3. **Servlet**:在JSP中,文件...
利用org.apache.commons.fileupload编写的文件上传和下载的前台和后台代码,共两个例子,个有不同,费用使用。另有用jspSmartupload制作一个文件上传和下载的例子,其制作的例子能够上传到数据库中。
3. Java Servlets与JSP:如果后台管理.htm是通过Servlets或JSP处理的,那么需要掌握这两者的基础知识,包括它们在Web应用中的角色和交互方式。 4. 文档组织:理解Web应用中的目录结构,例如如何将静态资源(如图片、...
总的来说,后台处理POST请求并实现文件上传涉及到了多个层面的知识,包括HTTP协议、Java Servlet技术、Spring MVC框架以及Apache Commons库的使用。理解这些知识点对于开发基于HTTP的Web应用至关重要。在实际开发中...
本教程将专注于使用Struts2框架和Apache Commons FileUpload库来处理文件上传的后台操作。 Struts2是一个强大的MVC(Model-View-Controller)框架,它提供了一套完整的解决方案来构建Java Web应用程序。在Struts2中...