jspsmart(支持中文下载)
上传
//要加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(支持中文下载)的更多相关文章
- tomcat支持中文文件名下载
http://blog.csdn.net/wnczwl369/article/details/7483806 Tomcat 是Java开发者使用得较多的一个Web服务器,因为它占用资源小,运行速度快等 ...
- 对 hiren bootcd 15.2 中的 XP 系统作了汉化, 同时支持中文输入法。提供下载
对 hiren bootcd 15.2 中的 XP 系统作了汉化, 同时支持中文输入法.提供下载 对该PE 中的 XP 系统作了汉化, 由于一个 中文字库 就要 10M 多:加之原系统过于精简,对中文 ...
- Servlet 下载文件及支持中文文件名
Sevlet 下载pdf文件 支持中文文件名 package html2pdf.controller; import java.io.File; import java.io.FileInputStr ...
- JS导出PDF插件(支持中文、图片使用路径)
在WEB上想做一个导出PDF的功能,发现jsPDF比较多人推荐,遗憾的是不支持中文,最后找到pdfmake,很好地解决了此问题.它的效果可以先到http://pdfmake.org/playgroun ...
- Apache、NGINX支持中文URL
Apache(32位):安装环境:CentOS 5.6 + Apache 2.2.15安装结果:安装后支持“中文图片.文件名”链接直接打开以下为安装过程:1.下载安装包 wget ftp://ftp. ...
- C# Qrcode生成二维码支持中文,带图片,带文字 2015-01-22 15:11 616人阅读 评论(1) 收藏
1.下载Qrcode库源码,下载地址:http://www.codeproject.com/Articles/20574/Open-Source-QRCode-Library 2.打开源码时,部分类库 ...
- jQuery.qrcode.js客户端生成二维码,支持中文并且可以生成LOGO
描述: jquery.qrcode.js 是一个能够在客户端生成矩阵二维码QRCode 的jquery插件 ,使用它可以很方便的在页面上生成二维条码.此插件是能够独立使用的,体积也比较 ...
- PHP 支持中文目录和文件的的遍历:文件编码转换
在使用 readdir() 遍历指定目录时,使中文目录和文件名都正常显示需要使用 iconv() 进行文件编码转换: <?php header("Content-type:text/h ...
- Ubuntu 上安装 Freemind 并支持中文
Ubuntu 上安装 Freemind 并支持中文 JAVA 运行时 Freemind 是一个使用 Java 编写的思维导图工具,在安装时,需要到 Java 运行时(使用 OpenJRE 或 Orac ...
随机推荐
- CentOS7/RHEL7安装Redis步骤详解
CentOS7/RHEL7安装Redis步骤详解 CentOS7/RHEL7安装Redis还是头一次测试安装了,因为centos7升级之后与centos6有比较大的区别了,下面我们就一起来看看Cent ...
- codeforces 598A Tricky Sum
题目链接:http://codeforces.com/contest/598/problem/A 题目分类:大数 题意:1到n 如果是2的次方则减去这个数,否则就加上这个数,求最后的结果是多少 题目分 ...
- 14.3.5.1 An InnoDB Deadlock Example
14.3.5 Deadlocks in InnoDB 14.3.5.1 An InnoDB Deadlock Example 14.3.5.2 Deadlock Detection and Rollb ...
- 基于Predictive Parsing的ABNF语法分析器(十三)——rulelist、rule、rulename、define-as和elements
我们来看看rulelist,它是整个ABNF文法的入口,就是说一个ABNF文法就是一个规则列表rulelist.一个rulelist由若干个rule规则组成,每个rule由规则名rulename.定义 ...
- iOS学习——JSON数据解析(十一)
在之前的<iOS学习——xml数据解析(九)>介绍了xml数据解析,这一篇简单介绍一下Json数据解析.JSON 即 JavaScript Object Natation,它是一种轻量级的 ...
- C++晋升之dynamic_cast
danamic_cast 动态类型转换 ----RTTI提供的的操作符 ----动态:在执行阶段 ----类型转换:检測指针或引用类型,true->转换 ----体现价值的地方:用于多态 --- ...
- Android开发 更改返回button的图标
非常多的Android应用左上角都有返回button 在默认的情况下 ADT会默认给一个返回图标 而作为开发需求 非常多都要求定制一个新的图标 在Android的站点上 发现了2种能够更改的方法 1. ...
- hdu2713(dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2713 题意:有N个点,每个点都有一个值x,每次进行跳跃,当跳到自己所跳的第奇数个点是+x,第偶数个点时 ...
- android 项目中使用对话框统一封装
近期在做拼车项目中使用到了一些对话框,而且在非常多地方都使用到了,既然非常多地方使用到,那么肯定要封装一下,
- iOS ,呼叫捕获抛出勉未知方法的障碍
iOS 捕获未知方法的调用,避勉抛出异常 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 ...