`
frank1998819
  • 浏览: 751991 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类

Servlet 上传文件(转)

 
阅读更多

这里只使用Servlet,先用apache fileupload包将EXCEL文件流上传到服务器,然后服务器端读取EXCEL

JSP页面:

<form action="ImportExcelToDatabase?action=1" enctype="multipart/form-data" method="post">
<input type="file" name="excel"><br>
<input type="submit" value="导入">
</form>

 

Servlet类:

package readexcel;

import java.io.*;

import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.commons.fileupload.*;
import java.util.*;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;

public class ImportExcelToDatabase extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
   this.doPost(request, response);
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
   String strAction = request.getParameter("action");
   int action = 0;
   if (strAction != null && !strAction.equals("")) {
    action = Integer.parseInt(strAction);
   }
   switch (action) {
   case 1:
    this.importExcelToDatabase(request, response);
    break;
   }
}

 

public void importExcelToDatabase(HttpServletRequest request,
    HttpServletResponse response) throws ServletException, IOException {
   response.setContentType("text/html;charset=gbk");
   PrintWriter out = response.getWriter();
   if (!DiskFileUpload.isMultipartContent(request)) {
    out.println("只能处理multipart/form-data类型的数据!");
    return;
   }
   DiskFileUpload fu = new DiskFileUpload();
   // 最多上传200M数据
   fu.setSizeMax(1024 * 1024 * 200);
   // 超过1M的字段数据采用临时文件缓存
   fu.setSizeThreshold(1024 * 1024);
   // 设置上传的普通字段的名称和文件字段的文件名所采用的字符集编码
   fu.setHeaderEncoding("gbk");

   // 得到所有表单字段对象的集合
   List fileItems = null;
   try {
    fileItems = fu.parseRequest(request);
   } catch (FileUploadException e) {
    out.println("解析数据时出现如下问题:");
    e.printStackTrace(out);
    return;
   }

   // 处理每个表单字段
   Iterator i = fileItems.iterator();
   while (i.hasNext()) {
    FileItem fi = (FileItem) i.next();
    if (fi.isFormField()) {
     String content = fi.getString("GBK");
     String fieldName = fi.getFieldName();
     request.setAttribute(fieldName, content);
    } else {
     try {
      String pathSrc = fi.getName();
      /*
      * 如果用户没有在FORM表单的文件字段中选择任何文件,那么忽略对该字段项的处理
      */
      if (pathSrc.trim().equals("")) {
       continue;
      }
      InputStream is=fi.getInputStream();//得到文件流
      Workbook wb = Workbook.getWorkbook(is);
      Sheet sheet = wb.getSheet(0);
      Vector<DataVo> v=new Vector<DataVo>();
      for(int m=0;m<100000;m++){
       //开始读取EXCEL了
       Cell c0=sheet.getCell(0,m+4);
       String strc0=c0.getContents();
       Cell c2=sheet.getCell(2,m+4);
       String strc2=c2.getContents();
       Cell c3=sheet.getCell(3,m+4);
       String strc3=c3.getContents();
       if(strc3==""){
        break;
       }
       DataVo vo=new DataVo();
       vo.setType(strc0);
       vo.setName(strc2);
       vo.setTon(Double.parseDouble(strc3));
       v.addElement(vo);
      }
      List<DataVo> list=v;
      for(int j=0;j<list.size();j++){
       DataVo vo=(DataVo)list.get(j);
       System.out.println(vo.getName());
      }
     } catch (Exception e) {
      out.println("存储文件时出现如下问题:");
      e.printStackTrace(out);
      return;
     } finally { // 总是立即删除保存表单字段内容的临时文件
      fi.delete();
     }
    }
   }
}

}

分享到:
评论

相关推荐

    servlet 文件上传下载例子

    在这个"Servlet 文件上传下载例子"中,我们将探讨如何使用Servlet实现文件的上传和下载功能,这对于构建一个简单的图片文件服务器至关重要。 1. **文件上传** - **MultipartRequest**: 在Servlet中,处理文件上传...

    JSP+Servlet实现文件上传到服务器功能

    本文实例为大家分享了JSP+Servlet实现文件上传到服务器功能的具体代码,供大家参考,具体内容如下 项目目录结构大致如下: 正如我在上图红线画的三个东西:Dao、service、servlet 这三层是主要的结构,类似 MVC ...

    servlet实现文件上传下载

    本教程将详细讲解如何使用Servlet实现文件的上传和下载功能,其中涉及到的主要技术点包括Servlet API、Multipart解析以及文件流操作。 首先,我们需要了解Servlet在文件上传中的作用。Servlet在接收到客户端(通常...

    ajax异步文件上传,servlet处理

    本篇文章将深入探讨AJAX异步文件上传以及如何使用Servlet进行处理。 ### 1. AJAX异步文件上传原理 在HTML5之前,由于浏览器安全限制,AJAX无法直接处理文件,但HTML5引入了`FormData`对象,使得AJAX能够处理文件...

    异步servlet上传文件,解决网速慢以及大文件,耗完线程问题

    假如一个场景,用户上传文件,某些用户网速较慢,同时存在100个这样的用户,如果BIO且最大线程设为100会导致线程用完。NIO怎么来解决这个问题? 本实例采用tomcat8作为容器,开启异步servlet读写事件,解决高并发IO...

    jsp与servlet 上传文件 javaBean上传文件

    在处理文件上传需求时,JSP通常作为前端界面,而Servlet则负责后端逻辑处理。本篇文章将深入探讨如何使用JSP与Servlet进行文件上传,并特别关注如何解决中文文件名乱码的问题。 首先,我们需要理解文件上传的基本...

    JAVA_servlet的文件上传案例

    在本案例"JAVA_servlet的文件上传"中,我们将深入探讨如何使用Servlet实现文件上传功能,这对于构建交互性强的Web应用程序是至关重要的。文件上传功能允许用户在Web表单中选择本地文件并将其发送到服务器进行存储或...

    基于servlet的文件上传

    本示例基于Servlet和Apache Commons FileUpload库实现了一个简单的文件上传系统。下面将详细介绍这个过程及其涉及到的关键知识点。 首先,`servlet`是Java EE(企业版)的一部分,它是一种用于扩展Web服务器功能的...

    利用COS Servlet上传文件

    总的来说,利用COS Servlet上传文件涉及到客户端的表单提交和服务器端的Servlet处理,需要对HTTP协议、文件上传、MultipartRequest以及可能的业务逻辑有深入理解。同时,确保在实现过程中充分考虑安全性,以提供健壮...

    servlet 上传文件流保存到数据库

    以上就是使用Servlet上传文件流并保存到数据库的基本流程。实际应用中可能还需要处理一些额外的问题,比如错误处理、文件大小限制、文件类型检查等。同时,为了提高性能和安全性,可以考虑使用连接池管理数据库连接...

    基于Servlet实现文件的上传与下载

    "基于Servlet实现文件的上传与下载"是一个常见的实战任务,它涵盖了网络编程、多线程和文件I/O等多个核心概念。这里我们将深入探讨如何利用Servlet来实现这两个功能。 首先,让我们了解Servlet的工作原理。Servlet...

    jsp,servlet上传下载文件

    jsp、servlet 文件上传下载技术详解 文件上传下载是 Web 应用中的一种常见需求,使用 jsp 页面和 servlet 实现文件上传下载是其中的一种解决方案。下面将详细介绍 jsp、servlet 文件上传下载技术。 文件上传下载...

    Servlet中文件上传和下载

    本文将深入探讨如何在Servlet中实现文件的上传和下载功能,以及在页面上利用JSP和Javabean来实例化对象。 首先,文件上传是通过HTTP多部分请求(Multipart Request)来实现的。Servlet 3.0及以上版本提供了对这种...

    servlet实现文件上传功能

    在本篇讨论中,我们将深入探讨如何利用Servlet实现文件上传功能,以及在这个过程中涉及的关键知识点。 首先,我们需要了解HTTP协议。HTTP协议是无状态的,这意味着每次请求都是独立的。因此,在客户端(通常是...

    Servlet上传文件并显示进度条

    "Servlet上传文件并显示进度条"这个主题涵盖了如何在用户上传大文件时提供实时进度反馈,以增强用户体验。在这个过程中,我们需要处理以下几个核心知识点: 1. **Multipart解析器**:Servlet 3.0及以上版本引入了...

    CKEditor 上传文件(Servlet实现)

    本教程将详细介绍如何通过Servlet来实现CKEditor的文件上传功能。 首先,我们需要了解Servlet的概念。Servlet是Java服务器端程序,用于处理来自客户端(如浏览器)的请求并返回响应。在CKEditor的文件上传场景中,...

    java servlet上传文件 项目中用的.绝对能用

    上载文件.轻松搞定.java Servlet上传文件.

    servlet上传文件详细解析

    servlet上传文件详细解析 大家好好看

    vue+servlet的文件上传案例.rar

    本示例结合了前端的Vue.js框架和后端的Servlet技术,提供了一种实现文件上传的解决方案。Vue.js是一个轻量级的渐进式JavaScript框架,而Servlet则是Java Web开发中的核心组件,用于处理HTTP请求和响应。接下来,我们...

    servlet实现的上传文件实例

    在这个"Servlet实现的上传文件实例"中,我们将深入探讨如何使用Servlet来处理客户端上传的文件。上传文件是Web应用程序中常见的功能,例如用户提交简历、上传图片或者共享文档等。以下是关于这个主题的详细知识点: ...

Global site tag (gtag.js) - Google Analytics