`
hao861002
  • 浏览: 86410 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

文件批量上传

阅读更多

执行类:

/**
 * @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);
 }

}

分享到:
评论

相关推荐

    jquery 文件批量上传控件

    《jQuery文件批量上传控件详解》 在网页开发中,用户交互体验的提升往往离不开高效、便捷的文件上传功能。jQuery作为一个广泛使用的JavaScript库,提供了丰富的插件来增强这一功能,其中“jQuery文件批量上传控件”...

    java实现文件批量上传

    在Java开发中,文件批量上传是一项常见的功能,尤其在企业级应用中,用户可能需要上传大量数据或文件。本教程将介绍如何利用SWF(Simple Workflow)和EXT库来实现这一功能。SWF是一个用于创建富互联网应用程序的前端...

    bootstrap 文件上传组件 fileinput 实现文件批量上传

    Bootstrap文件上传组件FileInput是一款强大的前端文件上传工具,尤其适合于需要实现文件批量上传的场景。这个组件基于Bootstrap框架,提供了美观的用户界面和丰富的功能,使得文件上传操作变得直观且易于实现。以下...

    asp.net自定义固定格式多文件批量上传

    在ASP.NET中,实现自定义固定格式的多文件批量上传是一项常见的需求,这涉及到Web开发中的文件上传控件、服务器端处理以及客户端交互等多个技术环节。以下是对这一知识点的详细阐述: 1. **文件上传控件**:在ASP...

    三种文件批量上传方法 包含服务器端代码 带进度条

    在IT行业中,文件批量上传是一项常见的需求,尤其在大数据传输、文件管理以及用户交互的场景中。本资源提供的是三种不同的文件批量上传方法,其中包括单文件上传和多文件上传,并且都带有进度条功能,这对于提升用户...

    element-ui+vue单文件上传和 多文件批量上传(多文件走一次接口).pdf

    本文将详细讲解如何使用Element UI与Vue.js实现单文件上传和多文件批量上传,且确保所有文件通过一个接口进行提交。 首先,我们需要安装Element UI库。在项目根目录下运行以下命令: ```bash npm install element-...

    Jquery 文件批量上传程序

    本项目“Jquery 文件批量上传程序”提供了一种高效、用户友好的解决方案,适用于那些需要集成到自己网站中的开发者。以下是这个程序的关键知识点和实现细节: 1. **jQuery库**:jQuery 是一个广泛使用的JavaScript...

    图片,文件批量上传源代码

    "图片,文件批量上传源代码"正是针对这一需求提供的解决方案。它允许用户一次性上传多个图片或文件,而不是逐个进行,极大地优化了用户体验。 批量上传通常涉及到的技术包括前端的多文件选择、文件预览、进度条显示...

    struts2 实现文件批量上传

    文件批量上传是Web应用中常见的需求,特别是在处理大量数据或者用户需要上传多张图片等场景下。本项目实现了使用Struts2进行文件批量上传的功能,这涉及到几个关键的技术点,包括文件上传组件的选择、前端表单设计、...

    BAT脚本实现文件批量上传示例

    BAT脚本实现文件批量上传示例

    C#文件批量上传服务器源码

    基于C#MVC-WEBAPI实现的文件批量上传服务器源代码,客户端通过form表单或ajax提交参数及文件,本程序负责接收并处理请求:将文件根据时间戳重命名后存入指定目录,并将参数与文件一一对应后存入mysql数据库,代码简洁,4-...

    SWFupload_文件批量上传

    SWFupload是一款强大的JavaScript库,专门用于实现网页上的文件批量上传功能。它通过Flash插件在浏览器端提供用户友好的界面,支持多文件选择、进度条显示、预览功能等,极大地提升了用户在上传大量文件时的体验。...

    文件批量上传客户端免费组件

    【文件批量上传客户端免费组件】是一款基于ASP技术开发的实用工具,主要针对网站或服务器的文件上传需求,尤其适用于需要处理大量文件上传的场景。ASP(Active Server Pages)是微软公司开发的一种服务器端脚本环境...

    ajax+jquery文件批量上传.doc

    ### IT知识点:使用Ajax与jQuery实现文件批量上传 在现代Web开发中,文件批量上传是一项常见且实用的功能,尤其在用户需要一次性上传多个文件(如图片、文档等)的场景中。本文将深入探讨如何利用Ajax与jQuery技术...

    QT开发Socket实现文件批量上传源码

    在文件批量上传的服务器端,我们可以创建一个QTcpServer实例,设置监听端口,并在有新的连接请求时触发相应的槽函数,以便处理客户端的连接。 2. **QTcpSocket**: QTcpSocket类是用于建立和管理TCP连接的。在客户端...

    文件批量上传 tp+layui

    标题“文件批量上传 tp+layui”表明我们要讨论的是一个基于ThinkPHP(简称tp)框架和Layui前端组件库实现的文件批量上传功能。Layui是一个轻量级的前端框架,提供了丰富的UI组件,而ThinkPHP则是一个流行的PHP开发...

    boostrap拖动文件批量上传插件

    综上所述,这款Bootstrap拖动文件批量上传插件利用了现代Web技术,提供了便捷、直观的文件上传体验,特别适合需要大量文件上传功能的网站或应用。开发者可以通过调整CSS和JavaScript来定制插件的外观和行为,以适应...

    boostrap可拖动文件批量上传代码.zip

    Bootstrap可拖动文件批量上传代码是利用HTML5的拖放(Drag and Drop)API和jQuery库构建的一个实用功能,主要用于提升用户体验,使得用户在网页上能够方便地通过拖拽操作来上传多份文件。这个插件是JavaScript特效的一...

    文件批量上传 图片批量上传 组件,PHP使用

    在IT行业中,文件批量上传和图片批量上传是常见的需求,特别是在网站开发和内容管理系统中。PHP作为一门广泛使用的服务器端脚本语言,提供了强大的文件处理功能,使得批量上传成为可能。下面将详细介绍PHP实现文件...

    基于Java EE的文件批量上传的设计与实现

    在Java EE平台上,文件批量上传是一项常见的功能,尤其在企业级应用中,如文档管理系统、电商平台等,都需要处理用户上传的大量文件。本设计与实现主要涵盖了以下几个关键知识点: 1. **Servlet与JSP**:Java EE...

Global site tag (gtag.js) - Google Analytics