新建类UploadServlet
- package org.action;
-
-
import java.io.File;
-
import java.io.IOException;
-
import java.util.Iterator;
-
import java.util.List;
-
-
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;
-
-
@SuppressWarnings("unchecked")
-
public class UploadServlet extends HttpServlet{
-
-
private static final long serialVersionUID = 1L ;
-
-
@Override
-
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
-
throws ServletException, IOException {
- doPost(req, resp) ;
- }
-
-
@Override
-
protected void doPost(HttpServletRequest request, HttpServletResponse response )
-
throws ServletException, IOException {
-
DiskFileItemFactory factory = new DiskFileItemFactory() ;
-
factory.setSizeThreshold( 8192 ) ;
-
String tempPath = request.getSession().getServletContext().getRealPath( "/")
-
+ "/upload" ;
-
File file = new File( tempPath ) ;
-
if(!file.isDirectory()){
- file.mkdirs();
- }
- factory.setRepository( file ) ;
-
ServletFileUpload upload = new ServletFileUpload( factory ) ;
-
- List<FileItem> items;
-
try {
- items = upload.parseRequest(request);
- Iterator<FileItem> itr = items.iterator();
-
while (itr.hasNext()) {
- FileItem item = (FileItem) itr.next();
-
if(!item.isFormField()){
-
File savedFile = new File( tempPath , item.getName() ) ;
- item.write(savedFile) ;
-
}else{
-
System.out.println( item.getFieldName() + "-->" + item.getString() ) ;
- }
- }
-
}catch (Exception e){
- e.printStackTrace() ;
- }
- }
-
- }
在web.xml 中配置:
- <servlet>
-
<servlet-name>upload</servlet-name>
-
<servlet-class>org.action.UploadServlet</servlet-class>
-
</servlet>
-
<servlet-mapping>
-
<servlet-name>upload</servlet-name>
-
<url-pattern>/upload</url-pattern>
-
</servlet-mapping>
-
页面代码:
- <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
- <%
- String path = request.getContextPath();
-
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
- %>
-
-
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
-
<base href="<%=basePath%>">
-
-
<title>My JSP 'index.jsp' starting page</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">
- </head>
-
- <body>
-
<form action="<%=basePath %>upload" method="post" enctype="multipart/form-data">
-
<input type="file" name="file"/>
-
<input value="name" name="name" type="text" />
-
<input type="submit"/>
- </form>
- </body>
- </html>
依赖的jar包,commons-fileupload-1.1.jar 和commons-io-1.1.jar
分享到:
相关推荐
总的来说,Java中的Servlet结合Apache Commons FileUpload库可以有效地处理大文件的批量上传。通过理解并实践这些代码,你可以为你的Web应用构建一个强大的文件上传系统。记得在实际开发中,还需要考虑安全性、错误...
在Java开发中,文件批量上传是一项常见的功能,尤其在企业级应用中,用户可能需要上传大量数据或文件。本教程将介绍如何利用SWF(Simple Workflow)和EXT库来实现这一功能。SWF是一个用于创建富互联网应用程序的前端...
1. **Servlet与Multipart解析器**:在Java Web开发中,处理文件上传通常使用Servlet,特别是Apache的Commons FileUpload库或Java EE 3.0及以上版本的内置Multipart解析器。这些库能解析HTTP请求中的多部分数据,将...
在Java编程领域,批量上传文件是一项常见的功能,尤其在Web应用程序中,如处理用户上传的图片、文档等。本实例将深入探讨如何实现这个功能,包括后端处理和前端交互,以及涉及到的关键技术和工具。 首先,批量上传...
在Java编程环境中,批量上传文件是一项常见的任务,尤其在Web应用程序中,如文件分享平台、云存储服务等。本文将详细讲解如何实现Java中的文件批量上传功能,以及相关的技术要点。 首先,理解“批量上传”意味着一...
综上所述,实现“java 批量上传图片”涉及到了Java I/O、多线程、网络通信、文件处理、异常处理等多个方面,开发者需要对这些知识点有深入理解和实践,才能编写出稳定、高效的批量图片上传程序。
在Java EE平台上,文件批量上传是一项常见的功能,尤其在企业级应用中,如文档管理系统、电商平台等,都需要处理用户上传的大量文件。本设计与实现主要涵盖了以下几个关键知识点: 1. **Servlet与JSP**:Java EE...
在图片批量上传的场景中,Servlet充当了服务器端的处理程序,接收前端发送的图片文件,进行存储,并返回相应的结果。 **图片批量上传** 批量上传图片是一种常见的用户交互需求,特别是在社交媒体、电商平台等场景。...
这种技术尤其在处理大文件或者批量上传时,能够显著提升用户体验,因为它们不会冻结页面,允许用户继续与应用程序交互。在本篇文章中,我们将深入探讨Java实现文件异步上传的核心概念和技术。 首先,异步上传主要...
在设计批量上传系统时,还要关注用户体验,如进度显示、错误处理和重试机制。前端可以使用Ajax或Fetch API异步提交文件,提供上传进度反馈。如果上传过程中发生错误,可以捕获并处理异常,决定是重新上传还是通知...
Java作为一种广泛使用的服务器端编程语言,对于处理大文件上传提供了多种策略和技术。本篇文章将详细探讨Java实现大文件上传的原理、方法及优化策略。 首先,我们需要理解HTTP协议在上传大文件时面临的挑战。标准的...
在Java中,可以使用Servlet API来处理文件上传。`Part`接口是Servlet 3.0引入的,用于处理多部分请求(multipart/form-data),这是上传文件的标准格式。你可以创建一个Servlet来接收上传的文件,并将文件保存到...
Java中的SWFUpload是一种流行的文件上传工具,尤其适用于处理图片和文件的批量上传。这个工具在Web开发中被广泛使用,因为它提供了用户友好的界面和高效的数据传输能力。SWFUpload是一个基于Flash的组件,它允许用户...
`java 支持 超大上G , 多附件上传` 这个标题所指的就是Java平台如何处理大容量文件及批量附件的上传功能。在给定的描述中提到了`commons-fileupload-1.2.2`,这是一个非常实用的开源组件,用于处理HTTP协议中的文件...
### Java实现多文件异步上传知识点详解 在现代Web应用开发中,文件上传是一个非常常见的需求,尤其是在涉及图片、文档等多媒体数据的应用场景下。为了提高用户体验,异步上传技术得到了广泛的应用。本文将深入探讨...
总结来说,"swf+java+servlet多文件上传单个进度条显示"方案是一种传统的多文件上传实现方式,利用Flash的文件处理能力、Java Servlet的服务器端处理以及自定义的前端反馈机制来提供批量文件上传并显示整体进度。...
在Java开发中,批量上传文件是一项常见的需求,尤其是在大数据处理、文件管理以及用户交互的场景中。Uploadify是一款优秀的前端文件上传插件,版本3.1提供了批量上传功能,极大地提高了用户上传多文件的效率。本文将...