将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());
}
%> 

jspsmart(支持中文下载)的更多相关文章

  1. tomcat支持中文文件名下载

    http://blog.csdn.net/wnczwl369/article/details/7483806 Tomcat 是Java开发者使用得较多的一个Web服务器,因为它占用资源小,运行速度快等 ...

  2. 对 hiren bootcd 15.2 中的 XP 系统作了汉化, 同时支持中文输入法。提供下载

    对 hiren bootcd 15.2 中的 XP 系统作了汉化, 同时支持中文输入法.提供下载 对该PE 中的 XP 系统作了汉化, 由于一个 中文字库 就要 10M 多:加之原系统过于精简,对中文 ...

  3. Servlet 下载文件及支持中文文件名

    Sevlet 下载pdf文件 支持中文文件名 package html2pdf.controller; import java.io.File; import java.io.FileInputStr ...

  4. JS导出PDF插件(支持中文、图片使用路径)

    在WEB上想做一个导出PDF的功能,发现jsPDF比较多人推荐,遗憾的是不支持中文,最后找到pdfmake,很好地解决了此问题.它的效果可以先到http://pdfmake.org/playgroun ...

  5. Apache、NGINX支持中文URL

    Apache(32位):安装环境:CentOS 5.6 + Apache 2.2.15安装结果:安装后支持“中文图片.文件名”链接直接打开以下为安装过程:1.下载安装包 wget ftp://ftp. ...

  6. C# Qrcode生成二维码支持中文,带图片,带文字 2015-01-22 15:11 616人阅读 评论(1) 收藏

    1.下载Qrcode库源码,下载地址:http://www.codeproject.com/Articles/20574/Open-Source-QRCode-Library 2.打开源码时,部分类库 ...

  7. jQuery.qrcode.js客户端生成二维码,支持中文并且可以生成LOGO

    描述: jquery.qrcode.js 是一个能够在客户端生成矩阵二维码QRCode 的jquery插件 ,使用它可以很方便的在页面上生成二维条码.此插件是能够独立使用的,体积也比较         ...

  8. PHP 支持中文目录和文件的的遍历:文件编码转换

    在使用 readdir() 遍历指定目录时,使中文目录和文件名都正常显示需要使用 iconv() 进行文件编码转换: <?php header("Content-type:text/h ...

  9. Ubuntu 上安装 Freemind 并支持中文

    Ubuntu 上安装 Freemind 并支持中文 JAVA 运行时 Freemind 是一个使用 Java 编写的思维导图工具,在安装时,需要到 Java 运行时(使用 OpenJRE 或 Orac ...

随机推荐

  1. C++异常中的堆栈跟踪

    C++语言的运行时环境是基于栈的环境,堆栈跟踪(trace stack)就是程序运行时能够跟踪并打印所调用的函数.变量及返回地址等,C++异常中的堆栈跟踪就是当程序抛出异常时,能够把导致抛出异常的语句 ...

  2. 彻底卸载McAfee和Agent的方法

    1.控制面板中-添加或删除程序中-删除"McAfee VirusScan Enterprise"和"McAfee AntiSpyware Enterprise Modul ...

  3. linux使用进阶(一)

    本文依据<应该知道的Linux技巧>coolshell上的一篇文章提到的Linux技巧,结合自己掌握的情况进行扩展和总结得来.主要包含下面内容:     一.日常操作     二.数据处理 ...

  4. hdu2444(判二分图+最大匹配)

    传送门:The Accomodation of Students 题意:有n个学生,m对相互认识的,问能否分成两队,使得每对中没有相互认识的,如果可以求最大匹配,否则输出No. 分析:判断二分图用染色 ...

  5. cocos2d-x(十二)Lua开发飞机大战-7-加入敌机

    Lua本是一门面向过程的解释性语言.但在开发过程中有很多人还是习惯于面向对象编程.在Lua中我们能够使用table模拟类.只是写起来不太爽(特别是在继承一些C++类的时候).通过查看演示样例.发现co ...

  6. Oracle 11g服务详解

    装上Oracle之后大家都会感觉到我们的电脑慢了下来,如何提高计算机的速度呢?我们应该打开必要的服务,关闭没有用的服务.下面是Oracle服务的详解: Oracle ORCL VSS Writer S ...

  7. dblink如果很慢可以用这种方式优化

    发现dblink如果很慢可以用这种方式加个/*+driving_site(xxx)*/,查询很快 DBLINK HINT /*+ driving_site(org) */ 优化策略和思路 使用DBLI ...

  8. python语言学习1——初识python

    Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言. 龟叔给Python的定位是“优雅”.“明确”.“简单”,所以Python ...

  9. hdu1505(dp求最大子矩阵)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1505 分析: 这题是HDU 1506 的加强版,定义一个二维数组,d[i][j]表示第i行j列元素在前 ...

  10. hdu2151(递推dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2151 分析: DP.思路:全盘扫描.     i表示时间,l表示第几棵树,方程:     step[i ...