zoukankan      html  css  js  c++  java
  • jspsmart(支持中文下载)

    将excel文件从jsp页面导入到数据库,先将文件上传到server,然后读取,最后删除掉
    上传
    //要加encType="multipart/form-data"
    <form action="addmore_project.jsp" name="muti" method="post" encType="multipart/form-data">
    批量导入项目<input type=file name="daoru" >
    <input type=button value="提交"  class=buttons >
    </form>
     
    <%@ page import="java.sql.*" c%>
    <%@ page import="web.CommFunc,web.OperateExcel"%>
    <%@ page import="com.jspsmart.upload.*"%>
    <%request.setCharacterEncoding("UTF-8");%>
    <%
     // 新建一个SmartUpload对象/////////******先将文件上传至server
     SmartUpload su = new SmartUpload();
     // 上传初始化
     su.initialize(pageContext);
     // 上传文件
     su.upload();
    //假设有request.getParameter()应该放在su.upload()的后面,否则报错
     String filePath = request.getParameter("daoru");
     try{
     Class.forName(db_forname);
     Connection conn= DriverManager.getConnection(db_url,db_user,db_password);
     String FilePath = "";
     String filename="";
     if (su.getFiles().getCount()>0) {
      com.jspsmart.upload.File file = su.getFiles().getFile(0);
      FilePath = "/upload/temp/";
      filename = file.getFileName();
      java.io.File f = new java.io.File(application.getRealPath("/")+FilePath);
       if(!f.exists()){
        f.mkdirs();
       }System.out.println(FilePath + filename);
       file.saveAs(FilePath + filename);
     }
     else {
      out.println("没有上传文件,请[<a href='javascript:history.back();'>返回</a>]");
     }
     ///////////////////////////////////////////////////
     
     OperateExcel oe = new OperateExcel();
     //oe.save_project(oe.readExecel(filePath),conn);
     oe.save_projectFive(oe.readExecelFive(application.getRealPath("/")+FilePath + filename),conn);
     out.println("<center><span>批量导入成功</span></center>");
     //******最后将这个文件删除
     java.io.File f1 = new java.io.File(application.getRealPath("/")+FilePath + filename);
     if(f1.exists()){
      f1.delete();
     }
     
    %>
     
     
    文件下载
    <%@ page import="java.sql.*,com.jspsmart.upload.*" c%> // 新建一个SmartUpload对象
     SmartUpload su = new SmartUpload();
      // 初始化
     su.initialize(pageContext);
      // 设定contentDisposition为null以禁止浏览器自己主动打开文件,
      //保证点击链接后是下载文件。若不设定,则下载的文件扩展名为
      //doc时,浏览器将自己主动用word打开它。扩展名为pdf时,
      //浏览器将用acrobat打开。
     su.setContentDisposition(null);
      // 下载文件
     su.downloadFile(filename);
    //以下两句重要,否则有可能会提示出错:
    //java.lang.IllegalStateException: getOutputStream() has already been called for this response
    //这个错误的其他解决方法:就是文件開始的<%%>都要紧挨着,不能有空格,更不能有换行,如:
    //http://dl2.csdn.net/down4/20070717/17095956994.rarhttp://dl2.csdn.net/down4/20070717/17095956994.rar<%@ page contentType="text/html; charset=GBK" %><%@ page import="java.io.*" %><%
            out.clear(); 
           out = pageContext.pushBody(); 

     
    }
    catch (Exception e) {
      out.println(e.getMessage());
    }
    %> 
  • 相关阅读:
    1833: [ZJOI2010]count 数字计数——数位dp
    【模板】BZOJ 3685: 普通van Emde Boas树——Treap
    【模板】解决二分图匹配的强力算法——Hopcroft-Karp算法
    BZOJ 4516: [Sdoi2016]生成魔咒——后缀数组、并查集
    【模板】二分图匹配/一般图匹配——匈牙利算法/随机匈牙利算法
    【模板】BZOJ 1692:队列变换—后缀数组 Suffix Array
    BZOJ 4241: 历史研究——莫队 二叉堆
    【模板】BZOJ 3781: 小B的询问 莫队算法
    BZOJ 3656: 异或 (组合数取模 CRT)
    【模板】SPOJ FACT0 大数分解 miller-rabin & pollard-rho
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4390795.html
Copyright © 2011-2022 走看看