执行类:
/**
* @author LXY
* @date 2008=11-11
*/
public class UploadAction extends HttpServlet {
private static final long serialVersionUID = 1L;
String uploadPath = ""; // 用于存放上传文件的目录
String tempPath = ""; // 用于存放临时文件的目录
@Override
public void init() throws ServletException {
super.init();
//从配置文件中读取文件路径
uploadPath = this.getInitParameter("uploadPath");
tempPath = this.getInitParameter("tempPath");
}
@SuppressWarnings("unchecked")
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//用于存放上传文件的原路径
List<String> fileList = new ArrayList<String>();
//创建存放上传文件的文件夹
File fileDir = new File(uploadPath);
if (!fileDir.exists()) {
fileDir.mkdir();
}
//创建临时文件夹
File tempDir = new File(tempPath);
if (!tempDir.exists()) {
tempDir.mkdir();
}
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setRepository(new File(tempPath)); // 设置临时目录
factory.setSizeThreshold(1024 * 1024); // 设置缓冲区大小
ServletFileUpload upload = new ServletFileUpload(factory);
//设置字符集
upload.setHeaderEncoding("UTF-8");
try {
List<FileItem> list = upload.parseRequest(request); // 得到所有的文件
for (FileItem fileItem : list) {
// 如果是表单信息
if (fileItem.isFormField()) {
String name = fileItem.getFieldName(); // 获得表单中按钮的类型
String value = fileItem.getString("UTF-8"); // 获得表单中按钮的值
request.setAttribute(name, value);
} else {
String name = fileItem.getFieldName(); //获得表单中域的名字
String value = fileItem.getName(); // 获得从浏览器中取得的文件全路径
//将上传文件的路径放到列表里
fileList.add(value);
int start = value.lastIndexOf("\\");
String fileName = value.substring(start + 1); // 由于不同的浏览器可能取得的文件的名字不同,有的浏览器将整个路径取道,有的浏览器只取到文件名
request.setAttribute(name, fileName); // IE里取的是文件明,如XXX.doc等
// 使用fileupload提供的上传
try {
// 写入文件,也可以从fileName中提取文件名:
fileItem.write(new File(uploadPath, fileName));
} catch (Exception e) {
e.printStackTrace();
}
}
}
} catch (FileUploadException e) {
e.printStackTrace();
}
//将获得的文件路径放回请求
request.setAttribute("fileList", fileList);
//页面跳转
request.getRequestDispatcher("success.jsp").forward(request, response);
}
}
以下附件是整个工程包括相关包.
分享到:
相关推荐
在描述中提到的项目,显然利用了SWFUpload与FileUpload的组合,来实现带有进度条百分比显示的文件批量上传功能,并且可以在Eclipse环境中直接运行,这通常意味着该项目是一个基于Java的Web应用。 1. **SWFUpload...
Bootstrap文件上传组件FileInput是一款强大的前端文件上传工具,尤其适合于需要实现文件批量上传的场景。这个组件基于Bootstrap框架,提供了美观的用户界面和丰富的功能,使得文件上传操作变得直观且易于实现。以下...
"uploadify"是一款基于jQuery的插件,它为网页提供了强大的文件上传功能,包括一次选择多个文件和批量上传的能力。这些特性极大地提高了用户上传文件的效率,减轻了他们的操作负担。 "uploadify"的多选功能允许用户...
通过以上知识点的整合,我们可以构建一个稳定、高效且安全的基于Java EE的文件批量上传系统,满足各种业务需求。在实现过程中,要注重代码的可读性、可维护性和扩展性,以适应未来可能的变化。同时,持续的测试和...
在Asp.net开发中,文件批量上传是一项常见的需求,尤其在大数据时代,用户可能需要一次上传多个文件。Flex作为一款强大的富互联网应用开发框架,能够提供丰富的用户界面体验,与Asp.net结合可以构建高性能、交互性强...
文件批量上传组件是Web开发中常见的一种功能,用于提高用户在网站上上传多个文件的效率。在本案例中,我们讨论的是三个不同平台的实现版本:ASP、ASP.NET和JSP。这些技术都是用于构建动态网页应用的重要工具,各有其...
【标题】"FLASH 文件批量上传程序"涉及到的主要技术领域是Web开发中的文件上传功能,尤其在Java环境下。这里的关键知识点包括Struts2框架、Flash技术以及文件处理。 【Struts2框架】:Struts2是一个基于MVC设计模式...
3. 多文件选择:允许用户一次选择多个文件进行批量上传。 4. 预处理回调函数:开发者可以自定义上传前的回调函数,对文件进行验证或预处理。 5. 成功和错误回调:提供上传成功或失败后的回调函数,方便执行后续操作...
在Java编程环境中,实现文件批量上传是一项常见的任务,尤其在构建Web应用或处理大量数据时。这个项目提供了直接导入Eclipse的代码示例,使得开发者能够快速理解和运用文件批量上传的功能。下面我们将深入探讨实现这...
ASP.NET文件批量上传系统是一种基于ASP.NET技术实现的,用于网站或应用程序中处理大量文件上传的功能模块。在现代Web应用中,用户可能需要一次性上传多个文件,如图片、文档或其他类型的媒体,批量上传功能可以极大...
ASP.NET 文件批量上传是Web应用开发中的一个常见需求,尤其在处理用户提交的大量数据时。在这个场景下,`jQuery Uploadify`插件是一个非常实用的工具,它为ASP.NET开发者提供了一个简单易用的前端文件上传解决方案。...
本文将详细讲解如何实现Java中的文件批量上传功能,以及相关的技术要点。 首先,理解“批量上传”意味着一次处理多个文件,而不是单个文件。这通常涉及到用户界面(UI)设计,使得用户可以一次性选择多个文件,然后...
下面将详细介绍Struts2实现文件批量上传的相关知识点。 1. **Struts2的ActionContext与FileUpload插件** Struts2的ActionContext类提供了对请求上下文的访问,包括请求参数、session和全局属性等。在文件上传时,...
"文件批量上传 jsp jfinal webuploader 在线预览缩略图" 这个标题描述了一个完整的文件上传解决方案,它涉及到几个关键的技术点,我们将逐一详细解释。 首先,批量上传(Batch Upload)是指用户可以一次选择多个...
Uploadify则是一个基于jQuery的JavaScript插件,它提供了一种富用户体验的文件上传方式,支持拖放、批量上传、进度条显示等功能。Uploadify使用Flash作为后盾,对于不支持HTML5的浏览器,它仍然能提供良好的文件上传...
ASP.NET 文件批量上传技术在开发过程中常常用于处理用户需要上传大量文件的场景,例如图片、文档等。在本文中,我们将深入探讨一个特定的实现方案——FlashFileUpLoad,它支持多选文件并带有进度条功能,为用户提供...
在这个批量上传的案例中,我们可以通过JavaScript监听文件选择事件,然后使用XMLHttpRequest对象创建异步请求,将选中的文件信息发送给服务器。当用户按Ctrl键选择多个文件时,可以在JavaScript中实现遍历和合并这些...
在本文中,我们将深入探讨如何使用SpringBoot框架与Plupload工具进行集成,以实现文件的批量上传、断点续传和秒传功能。这个项目基于SpringBoot 2和Plupload 2.3.6,提供了直观的上传进度条,并且是在IntelliJ IDEA...
在基于插件和Struts的批量上传中,通常会借助于第三方插件,如jQuery File Upload或Plupload等,这些插件能够简化前端的交互和多文件处理。 1. **jQuery File Upload插件**:这是一个强大的、支持多文件同时上传的...