要有commons-fileupload-1.1.1.jar和commons-io-1.1.jar包
//post.jsp
<%@ page language="java" contentType="text/html; charset=gbk"
pageEncoding="gbk"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<title>上传页面</title>
</head>
<body>
<form name="Webform" action="upload.jsp" method="post" enctype="multipart/form-data">
输入你的名字:<br/>
<input type="text" name="name" size="15" value="张月"/><br />
图形:<br />
<input type="file" name="myimage"><br/>
文件:<br />
<input type="file" name="myfile"><br /><br />
<input type="submit" name="Submit" value="Submit your files"/>
</form>
</body>
</html>
//upload.jsp
<%@ page language="java" contentType="text/html; charset=gbk"
pageEncoding="gbk"%>
<%@ 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.disk.DiskFileItemFactory"%>
<%@ page import="org.apache.commons.fileupload.servlet.ServletFileUpload"%>
<%@ 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>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<title>Insert title here</title>
</head>
<body>
<%
// 检查输入请求是否为multipart的表单数据。
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
if(!isMultipart){
out.print("表单数据格式不是multipart/form-data,或者非法提交");
return;
}
DiskFileItemFactory factory = new DiskFileItemFactory();// Create a factory for disk-based file items
factory.setSizeThreshold(102400);// 设置初始化内存,如果上传的文件超过该大小,将不保存到内存,而且硬盘中(单位:byte)
File fileTemp = new File("c:\\temp");// 建立临时目录
fileTemp.mkdir();
%>
<%--
如果上传的文件超过设置内存的大小,将文件保存至该目录,
待文件上传完毕后,自动删除上传的临时文件;
如果多次上传同一个文件,该文件会保存到服务器的临时目录,而不删除
--%>
<%
factory.setRepository(fileTemp);
ServletFileUpload upload = new ServletFileUpload(factory);// 创建文件上传对象
//DiskFileUpload upload = new DiskFileUpload(); //自己的
upload.setSizeMax(102400);// 设置客户端最大上传,-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("gbk");
System.out.println(name+ ":=" + value);
}
}
else {// 上传文件
if(item.getSize()!=0){
String filename = item.getName();// 获取文件的客户端上传路径
int i = filename.lastIndexOf("\\");
filename = filename.substring(i+1);// 获取文件名
System.out.println("文件名:"+filename);
System.out.println("Realpath is:"+getServletContext().getRealPath("/"));
//注意:创建File savedFile时,要在getRealPath("/")的目录下创建一个temp的目录,因为它传了getRealPath("/")+"temp"字符串了.
File savedFile = new File(getServletContext().getRealPath("/") + "temp", filename);
//File savedFile = new File("D:\\xpghost", filename);
System.out.println(item);
item.write(savedFile);
out.println("upload success!!!");
System.out.println("upload success!!!");
}
}
}
%>
</body>
</html>
分享到:
相关推荐
// 实例化Upload类 $upload->maxSize = 3145728; // 设置允许的最大上传文件大小 $upload->savePath = '/Uploads/'; // 设置上传文件保存路径 $upload->autoSub = true; // 开启子目录保存 $upload->subName = ...
在这个“Jquery AjaxUpload实现文件上传实例 PHP版”中,我们将探讨如何使用jQuery的AjaxUpload插件与PHP后端进行配合,实现实时的文件上传功能。 首先,我们需要在HTML页面中创建一个用于选择文件的input元素和一...
Base64和AjaxUpload上传文件代码实例 Base64和AjaxUpload上传文件代码实例是两种常用的文件上传方式,它们都可以实现文件上传到服务器端,但它们之间有着明显的区别。 Base64上传文件是一种基于文本编码的上传方式...
【标题】"upload上传实例"涉及的是Web应用中文件上传的功能。在开发Web应用程序时,文件上传是一项常见的需求,允许用户将本地计算机上的文件发送到服务器。Eclipse是一款广泛使用的Java集成开发环境(IDE),在这里...
在页面上使用多个upload按钮,我们需要为每个按钮创建独立的upload实例,这样它们就能各自管理自己的上传行为,互不干扰。 1. **引入layui库** 确保在HTML文件中引入layui的CSS和JS文件。通常,它们位于layui项目的...
这个实例是已经配置好并可以直接运行的,通过解压后打开`test.html`文件,你将能够体验到WebUpload的实际效果。 WebUpload的核心特性包括: 1. **多文件选择**:用户可以一次选择多个文件进行上传,提高了上传效率...
在单片机上实现HTTP Upload小文件上传是一项技术性较强的工作,主要涉及到嵌入式系统、网络通信协议以及操作系统任务管理等多方面的知识。这里我们将深入探讨如何在单片机环境中,利用C语言和HTTP POST方法来实现这...
在实际应用中,我们可以在控制器或业务逻辑层中实例化Upload类,然后调用其`processUpload()`方法来处理文件上传。例如: ```php if (isset($_FILES['myFile'])) { $upload = new Upload(['jpg', 'png', 'gif'], ...
然后,可以在ASP代码中创建UpLoadClass2.0的实例,并调用其方法来处理上传请求。 例如,以下是一个简单的ASP文件上传示例: ```vbscript Dim Upload Set Upload = Server.CreateObject("UpLoadClass2.0.UpLoad") ...
本实例主要讲解如何在JSP应用中使用`jspupload`进行文件上传和下载操作。 首先,我们来看`jspupload`的核心组件——`jsmartcom_zh_CN.jar`。这是一个包含中文支持的jar包,它包含了`jspupload`的所有类和资源文件。...
这个"webupload demo webuploader实例"的压缩包很可能是为了展示如何在实际项目中使用WebUploader进行文件上传操作。下面,我们将深入探讨WebUploader的核心功能、工作原理以及如何通过示例来实现文件上传。 1. ...
首先,`EVUploadSample.asp` 是主程序文件,它包含了ASPUpload组件的实例化和使用。在ASP页面中,你需要引用ASPUpload的库文件,通常通过`<%@ Component Language="VBScript" %>`指令引入。然后,创建ASPUpload对象...
在处理文件上传时,Element-UI的`el-upload`组件默认情况下会对每个文件发送单独的上传请求。然而,有时我们需要将多个文件一次性上传,并在同一个请求中发送。下面我们将详细介绍如何使用`el-upload`组件实现这一...
在本文中,我们将深入探讨如何使用`el-upload`组件实现多文件一次性上传,同时携带JSON数据,并自定义上传事件,不依赖`action`属性。`el-upload`是Element UI库中的一个组件,用于文件上传操作,提供了丰富的配置...
本实例主要探讨如何使用JSP来实现文件上传的功能,特别是针对图片、文档等类型的文件。文件上传是一个常用的需求,例如用户在网站上提交个人信息时可能需要上传头像或简历。以下将详细介绍如何使用JSP进行文件上传。...
这个"php版本upload实例.zip"文件提供了一个示例,帮助开发者理解如何在PHP环境中实现文件上传功能。以下是对该实例的详细解析: 1. **基本原理**: 文件上传在HTML表单中通过`<input type="file">`元素实现,用户...
jQuery-File-Upload是一款功能强大的JavaScript文件上传组件,它提供了一种优雅的方式来处理文件上传,支持多文件选择、进度条显示、图片预览等特性,使得文件上传变得更加直观和用户友好。在本文中,我们将深入探讨...
然后,我们需要初始化 WebUploader 实例,配置相应的参数,如服务器接口地址、文件类型限制、最大上传文件大小等。例如: ```html <div id="filePicker"></div> 或将文件拖到这里 ...
这个例子中,`ProgressMonitorInputStream`监听文件上传的进度,并通过`update()`方法更新进度条。注意,实际应用中还需要处理可能出现的异常,以及确保在文件传输完成后正确关闭所有资源。 通过以上步骤,你可以在...