利用JSP实现文件的上传功能,主要的技术用到了apache的开源项目commons中的两个小分支(commons-fileupload-1.2.2和commons-io-1.4),所以在做此练习的时候,需要到http://commons.apache.org/index.html这个网站上把这两个文件下载了,之后将其中的jar包导入自己的项目。
下载正确的文件名为:
commons-fileupload-1.2.2-bin.zip:将其中的commons-fileupload-1.2.2.jar文件导入自己的项目。
commons-io-1.4-bin.zip:将其中的commons-io-1.4.jar文件导入自己的项目。
之后构建以下两个页面文件:
1、页面:update.jsp主要负责选择要上传的文件,代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="40"
marginwidth="0" marginheight="0">
<center>
<h1>
文件上传演示
</h1>
<form name="uploadform" method="POST" action="save.jsp" ENCTYPE="multipart/form-data">
<table border="1" width="450" cellpadding="4" cellspacing="2"
bordercolor="#9BD7FF">
<tr>
<td width="100%" colspan="2">
文件1:
<input name="file1" size="40" type="file">
</td>
</tr>
<tr>
<td width="100%" colspan="2">
文件2:
<input name="file2" size="40" type="file">
</td>
</tr>
<tr>
<td width="100%" colspan="2">
文件3:
<input name="file3" size="40" type="file">
</td>
</tr>
</table>
<br />
<br />
<table>
<tr>
<td align="center">
<input type="submit" name="submit" value="开始上传" />
</td>
</tr>
</table>
</form>
</center>
</body>
</html>
2、页面save.jsp主要负责执行上传的动作,当上传成功后,会把相应的文件信息在该页面输出。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<%@ page import="java.io.*"%>
<%@ page import="org.apache.commons.fileupload.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<%
String msg = "";
DiskFileUpload fu = new DiskFileUpload();
// 设置允许用户上传文件大小,单位:字节
fu.setSizeMax(1000000000);
// 设置最多只允许在内存中存储的数据,单位:字节
fu.setSizeThreshold(4096);
// 设置一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录
fu.setRepositoryPath("C:\\TEMP");
//开始读取上传信息
request.setCharacterEncoding("UTF-8") ;
List fileItems = fu.parseRequest(request);
%>
<body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="40"
marginwidth="0" marginheight="0">
<font size="6" color="blue">文件列表:</font>
<center>
<table cellpadding=0 cellspacing=1 border=1 width="100%">
<tr>
<td bgcolor="#008080">
文件名
</td>
<td bgcolor="#008080">
大小
</td>
</tr>
<%
// 依次处理每个上传的文件
Iterator iter = fileItems.iterator();
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;
%>
<tr>
<td><%=item.getName()%></td>
<td><%=item.getSize()%></td>
</tr>
<%
//以下为文件名处理,将上传的文件保存在本项目的根目录下。
int end = name.length();
int begin = name.lastIndexOf("\\");
File savedFile = new File(getServletContext().getRealPath(
"/"), name.substring(begin + 1, end));
item.write(savedFile);
}
}
%>
</table>
<br />
<br />
<a href="upload.html">返回上传页面</a>
</center>
</body>
</html>
至此:利用JSP上传文件的功能已经实现。文件已经上传到tomcat/webapps/项目的根目录下。
分享到:
相关推荐
在本文中,我们将学习如何使用 JSP 实现文件上传和下载功能。在这个过程中,我们将使用 Apache 的 Commons FileUpload 和 Commons IO 两个库来处理文件上传和下载。 首先,让我们了解一下文件上传和下载的基本概念...
在Java Web开发中,利用Javabean和JSP可以构建一个完整的文件管理系统,包括文件的上传、显示和下载等功能。以下将详细介绍如何通过这些技术实现这些功能。 首先,我们要理解Javabean和JSP的角色。Javabean是一种...
在本教程中,我们将探讨如何利用JSP和Servlet来实现文件上传的功能,特别是在使用smartUpload组件的基础上进行封装,以提供更简洁易用的API。 首先,了解文件上传的基本原理。在Web应用中,文件上传通常涉及HTTP...
jsp实现文件上传文档是指使用jsp技术实现文件上传和下载功能的文档。该文档主要介绍了jspSmartUpload组件的安装和使用方法,以及该组件的特点和功能。 jsp实现文件上传文档的主要内容包括: 1、jspSmartUpload组件...
在IT行业中,文件上传是常见的用户交互功能,特别是在网页应用中。本教程将详细解析如何使用纯JSP技术实现一个不刷新页面、允许用户连续填写表单数据并最终上传文件的功能。这一特性对于提高用户体验至关重要,因为...
"JSP文件上传 支持进度条显示"这个项目是针对JSP环境设计的一个AJAX Web上传程序,它允许用户上传大文件(如单个文件100M),并具有文件上传进度条的可视化功能。以下将详细解析这个项目的知识点: 1. **JSP(Java...
通过以上步骤,我们可以利用Ajax和JSP实现一个高效、用户友好的文件上传系统。在实际开发中,还可以结合jQuery、Vue.js、React等前端框架,进一步简化代码并提高可维护性。总之,理解Ajax的异步特性以及JSP的服务器...
"MultifileUploadDemo"是一个很好的学习资源,它展示了如何结合Flash和JSP实现多文件上传功能。通过深入研究这个示例,开发者可以掌握如何处理复杂的文件上传需求,提高Web应用的功能性和用户体验。同时,随着HTML5...
本项目详细阐述了如何利用JSP实现文件的上传和下载功能。 首先,文件上传涉及的主要技术有HTML表单、Servlet和多部分请求。在HTML表单中,我们需要设置`<input type="file">`标签让用户选择要上传的文件。当用户...
对于新手来说,首先需要熟悉JSP的基础语法和生命周期,然后了解HTTP协议中的文件上传机制,接着学习Apache Commons FileUpload库的使用,最后结合MyEclipse的实践操作,可以逐步掌握文件上传下载的功能实现。...
通过查阅这个帮助文件,开发者可以更深入地了解如何利用该组件实现高效、安全的文件上传功能。 总的来说,JSP Smart Upload是一个实用且功能丰富的文件上传组件,它简化了Java Web开发中的文件上传操作,让开发者...
标签进一步强调了关键词“jsp上传”、“jsp多文件上传”和“jsp文件上传”,这些都与文件上传的特定场景有关。在JSP中处理多文件上传意味着组件需要能够处理一个请求中包含的多个文件,并且可能支持并发上传,以提高...
综上所述,Servlet、JSP和JavaBean协同工作,实现了用户友好的文件上传功能。Servlet处理HTTP请求,JSP提供用户界面,JavaBean封装业务逻辑,共同构建了一个安全、可控的文件上传系统。通过合理的代码组织和优化,...
通过以上步骤,你可以实现一个基本的JSP文件上传功能。然而,实际项目中可能还需要考虑更多因素,如用户体验、文件存储策略、错误报告等。不断学习和实践,你将能构建出更完善、更安全的文件上传系统。
下面将详细阐述JSP文件上传的实现步骤、原理以及如何利用`jspsmart.jar`进行优化。 首先,了解HTTP协议的基础知识是必要的。在HTTP中,标准的GET请求无法处理大文件或多个文件的上传,因为它们的参数长度有限制。...
本篇主要讨论如何利用JSP实现上传和下载功能。 上传功能在Web应用中常见于用户需要提交文件至服务器的情况,例如提交简历、上传图片等。在JSP中,我们可以使用Servlet API来处理文件上传。首先,需要在HTML表单中...
#### 文件上传功能实现 ##### HTML表单设计 HTML表单是用户与服务器交互的基础,通过`<form>`标签定义表单元素。在本例中,我们使用了`enctype="multipart/form-data"`属性来确保能够发送二进制数据(如文件)。...
本文将详细讲解如何利用JSP和Struts实现文件上传功能。 首先,我们要了解文件上传的基本概念。在Web应用中,文件上传是指用户通过浏览器选择本地文件并将其发送到服务器的过程。这个过程通常涉及到HTML表单、...