需要commons-fileupload.jar和 commons-io-1.2.jar包
注意:commons-fileuplaod1_2与1_1区别 如下:
<%@ page import="org.apache.commons.fileupload.disk.DiskFileItemFactory"%>
改为<%@ page import="org.apache.commons.fileupload.DefaultFileItemFactory"%>
<%@ page import="org.apache.commons.fileupload.servlet.ServletFileUpload"%>
改为<%@ page import="org.apache.commons.fileupload.DiskFileUpload"%>
1.index.jsp文件
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"
contentType="text/html; charset=utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>上传图片</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>
<form name="Webform" action="upload.jsp" method="post"
enctype="multipart/form-data">
输入你的名字:
<br />
<input type="text" name="name" size="15" value="hello" />
<br />
图形:
<br />
<input type="file" name="myimage">
<br />
文件:
<br />
<input type="file" name="myfile">
<br />
<br />
<input type="submit" name="Submit" value="Submit Files" />
</form>
</body>
</html>
2. upload.jsp文件
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="java.util.*"%>
<%@ page import="java.io.File"%>
<%@ page import="java.text.*"%>
<%@ page import="org.apache.commons.fileupload.FileItem"%>
<%@ page import="org.apache.commons.fileupload.FileItemFactory"%>
<%@ page import="org.apache.commons.fileupload.FileUpload"%>
<%@ page import="org.apache.commons.fileupload.DefaultFileItemFactory"%>
<%@ page import="org.apache.commons.fileupload.DiskFileUpload"%>
<%@ page import="org.apache.commons.fileupload.FileUploadBase"%>
<%@ page import="org.apache.commons.fileupload.FileUploadBase.SizeLimitExceededException"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'upload.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">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<%
// 检查输入请求是否为multipart的表单数据。
boolean isMultipart = DiskFileUpload.isMultipartContent(request);
if (!isMultipart) {
out.print("表单数据格式不是multipart/form-data,或者非法提交");
return;
}
DefaultFileItemFactory factory = new DefaultFileItemFactory();// Create a factory for disk-based file items
factory.setSizeThreshold(102400);// 设置初始化内存,如果上传的文件超过该大小,将不保存到内存,而且硬盘中(单位:byte)
File fileTemp = new File("c:\\temp");// 建立临时目录
fileTemp.mkdir();
%>
<%--
如果上传的文件超过设置内存的大小,将文件保存至该目录,
待文件上传完毕后,自动删除上传的临时文件;
如果多次上传同一个文件,该文件会保存到服务器的临时目录,而不删除
--%>
<%
factory.setRepository(fileTemp);
DiskFileUpload upload = new DiskFileUpload(factory);// 创建文件上传对象
upload.setSizeMax(1024000);// 设置客户端最大上传,-1为无限大(单位:byte)
//upload.setSizeMax(1024000);
//FileUploadBase.SizeLimitExceededException
List items = null;
try {
items = upload.parseRequest(request);// 分析request,并将保存结果至List里
System.out.println(items);
} catch (SizeLimitExceededException e) {
out.print("上传的文件超过系统限制(1MB)");
return;
}
Iterator itr = items.iterator();
while (itr.hasNext()) {// 循环处理表单元素
FileItem item = (FileItem) itr.next();
System.out.println("item is: " + item);
if (item.isFormField()) {// 普通的表单
if ("name".equals(item.getFieldName())) {
String name = item.getFieldName();
System.out.println(name);
String value = item.getString("utf-8");
System.out.println(name + ":=" + value);
}
} else {// 上传文件
if (item.getSize() != 0) {
String filename = item.getName();// 获取文件的客户端上传路径
System.out.println("最初的filename=" + filename);
int i = filename.lastIndexOf("\\");
filename = filename.substring(i + 1);// 获取文件名
System.out.println("文件名1=:" + filename);
/**
//注意:要支持中文,请用下面这两句,OK,不过如果中文是奇数,好像会出错.
// System.out.println("文件名:"+new String(filename.getBytes(),"utf-8"));
//filename = new String(filename.getBytes(),"utf-8");
**/
System.out.println("Realpath is:"
+ getServletContext().getRealPath("/"));
//注意:创建File savedFile时,要在getRealPath("/")的目录下创建一个temp的目录,因为它传了getRealPath("/")+"temp"字符串了.
File savedFile = new File(getServletContext()
.getRealPath("/")
+ "temp_files");
savedFile.mkdirs();
//File savedFile = new File("D:\\test\\upload3");
//savedFile.mkdirs();
savedFile = new File(savedFile, filename);
System.out.println(item);
item.write(savedFile);
out.println("upload success!!!");
System.out.println("upload success!!!");
}
}
}
%>
</body>
</html>
分享到:
相关推荐
本篇文章将详细讲解如何使用`Commons-FileUpload`进行文件上传,并读取上传文件的内容。 首先,了解`Commons-FileUpload`的工作原理。它解析HTTP请求,将多部分的数据分割成单独的部分,这些部分可以是文本或文件。...
这个"最全的common-FileUpload.jar包"结合了两个关键的Apache Commons库,为开发者提供了强大的文件上传解决方案,无论是小型项目还是大型企业级应用,都能从中受益。通过深入理解和有效利用这些工具,可以极大地...
首先,我们来看一下标题:“利用Common-fileupload封装的文件上传组件...附上源码”。这表明我们将讨论如何使用这个库来创建一个文件上传系统,并且提供有源码可供参考。通过`Common-fileupload`,我们可以实现用户...
下面,我们将深入探讨如何使用`Commons FileUpload`库在Java中实现文件上传功能,并基于提供的"文件上传demo"进行分析。 首先,我们需要添加`Commons FileUpload`的依赖到我们的项目中。如果你使用的是Maven,可以...
在"Common-FileUpload实现文件上传.doc"文档中,可能会详细介绍如何利用这个库来处理用户的文件上传请求。Common-FileUpload提供了一套完整的API,用于解析请求中的多部分数据,从而提取上传的文件。使用它,开发者...
Apache Commons FileUpload是一个Java库,专门用于处理HTTP协议中的多部分文件上传请求。在Web应用程序中,它允许用户上传文件到服务器,这对于处理用户提交的图片、文档或其他类型的数据至关重要。 描述中提及的...
在Java开发中,`common...总之,`common-io`和`common-fileupload`是Java开发中的强大工具,它们简化了常见的I/O操作和文件上传处理,提高了开发效率。了解并熟练运用这些库,能帮助开发者更好地应对实际项目中的挑战。
【使用commons-fileupload上传文件】 Apache Commons FileUpload是Apache组织的一个子项目,专注于处理HTTP文件上传。这个组件提供了一个简洁的API,使得开发者能够轻松地在Java应用中处理由浏览器发送的多部分...
在`MyProject`这个压缩包中,可能包含了使用`common-fileupload`进行文件上传和下载的示例代码,你可以解压后查看具体实现。通过阅读和理解代码,可以更好地掌握文件上传下载的实践应用。在实际开发中,结合源码和...
"Common-FileUpload带进度条文件上传"是一个专门处理这种需求的解决方案,它允许用户在上传文件时看到进度条,提供更好的用户体验。下面我们将详细探讨这个主题以及相关知识点。 1. 文件上传的基本原理:在Web开发...
在Java开发中,上传文件是一项常见的任务,而`commons-fileupload-1.3.3.jar`和`commons-io-2.6.jar`是Apache Commons项目中的两个重要库,专门用于处理HTTP请求中的文件上传功能。这两个库为开发者提供了便捷、高效...
### Common-fileupload组件实现文件上传 #### 一、概述 在现代Web开发中,文件上传是一项常见的需求。尤其是在Java Web应用程序中,实现文件上传功能变得越来越简单,这得益于丰富的开源库支持。Common-fileupload...
`params`拦截器负责解析普通表单字段,而`fileUpload`拦截器则处理文件上传,将文件内容封装到Action类的属性中。 6. **文件保存**: - 一旦文件被解析并映射到Action类,你可以选择保存到服务器的某个位置。这...
3. **解析请求**:使用Commons FileUpload库解析请求,获取上传的文件项。 4. **保存文件**:从文件项中获取输入流,然后写入到服务器的某个目录,完成文件上传。 四、文件下载步骤 1. **处理请求**:Servlet接收到...
标题 "common-FileUpload.jar" 指向的是一个用于处理文件上传功能的Java库,具体来说是Apache Commons FileUpload组件的实现。这个组件广泛应用于Web应用开发中,特别是那些需要用户上传文件的场景,如图片上传、...
commons-fileupload-1.2.1.jar和commons-io-1.3.2.jar jar 文件。 commons-fileupload-1.2.1.jar和commons-io-1.3.2.jar 案例上传: http://hi.baidu.com/lichao77821/blog commons-fileupload-1.2.1.jar和commons-...
在Java Web开发中,文件的上传和下载是常见的功能需求,`commons-fileupload`组件是Apache Commons项目的一个子项目,专门用于处理HTTP请求中的多部分数据,即表单文件上传。这个组件使得开发者能够轻松地在Servlet...
"common-fileupload"和"common-io"是Apache Commons项目中的两个重要组件,它们为处理文件上传和输入/输出提供了强大的支持。接下来,我们将详细讨论这两个库的功能、使用方法及其在JSP应用中的重要性。 Apache ...
Apache Commons FileUpload与Apache Commons IO是Java开发中处理文件上传的两个重要库,它们在Web应用中被广泛使用。这两个库分别提供了不同的功能,但在处理文件上传时常常一起使用。 `commons-fileupload-1.2.1....
Java 图片上传系统基于 `common-fileUpload` 模块实现,这是一个常见的用于处理文件上传的Java库。在Java Web开发中,文件上传功能是必不可少的一部分,尤其在涉及到用户提交图片时。`common-fileUpload` 是Apache ...