spring mvc配置完后实现下载功能
实现是前台:
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <script type="text/javascript" src="js/jquery-1.4.4.min.js"></script>
- <title>Insert title here</title>
- </head>
- <body>
- <input id='fileName' type="text" name="fileName"/>
- <a href="download.do" target="blank"><button>下载</button></a>
- </body>
- <script type="text/javascript">
- $(function(){
- $('a').click(function(){
- var link=this.href+'?'+'fileName='+$('#fileName').val();
- window.open(link);
- return false;
- });
- });
- </script>
- </html>
前台填写要下载的文件,后台从文件夹里查找,如果没有文件则返回错误文件,否则则提供任意文件类型的下载(填写文件时必须写后缀)
- package hope.cs.zhku.controller;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.OutputStream;
- import javax.servlet.http.HttpServletResponse;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
- /******************************************************************************
- * 名称:UserBasicEditorController.java</br>
- * 日期:2011-8-15</br>
- * 功能:</br>
- * 编写:Willson Huang</br>
- * 复核:</br>
- * 其他:</br>
- * 历史:(说明,修改人,时间)</br>
- * 1.create ,Willson Huang ,2011-8-15
- *****************************************************************************/
- @Controller
- public class DownloadController {
- @RequestMapping("download.do")
- public void downloadFile(String fileName,HttpServletResponse response){
- response.setCharacterEncoding("utf-8");
- response.setContentType("multipart/form-data");
- String downName = new String((downName.getBytes(), "ISO-8859-1"); //downName是从数据库中找出的中文名,这样做是为了防止中文名乱码。
- response.setHeader("Content-Disposition", "attachment;fileName="+fileName); //这里的fileName可以是保存时文件的名字,也可以换成downName自己命名的下载下来的名字。
- try {
- File file=new File(fileName);
- System.out.println(file.getAbsolutePath());
- InputStream inputStream=new FileInputStream(file);
- OutputStream os=response.getOutputStream();
- byte[] b=new byte[1024];
- int length;
- while((length=inputStream.read(b))>0){
- os.write(b,0,length);
- }
- inputStream.close();
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }


spring mvc配置完后实现下载功能的更多相关文章
- Tomcat配置和Spring MVC配置
Tomcat启动时,先找系统变量CATALINA_BASE,如果没有,则找CATALINA_HOME.然后找这个变量所指的目录下的conf文件夹,从中读取配置文件.最重要的配置文件:server.xm ...
- Spring MVC配置详解(3)
一.Spring MVC环境搭建:(Spring 2.5.6 + Hibernate 3.2.0) 1. jar包引入 Spring 2.5.6:spring.jar.spring-webmvc.ja ...
- spring MVC配置详解
现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了.不过 ...
- Spring mvc 配置详解
现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了.不过 ...
- spring MVC配置详解(转)
现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了.不过 ...
- Spring MVC 配置记录
目录 1.从pom.xml配置Maven文件开始 2.web.xml 3.springmvc-config.xml 4.controller 使用 idea 编辑器 + Maven + spring ...
- MQTT 4 ——MQTT的Spring Mvc 配置接收字节流数据
本篇记录一下MQTT整合Spring Mvc配置直接收发字节流数据 设备方是纯C开发,并且为了交互数据的安全,将传送的数据用了AES CBC进行了加密. 接下来正常方便做法应该是 将加密后的字节流转换 ...
- Spring MVC配置静态资源和资源包
Spring MVC配置静态资源和资源包 本例映射:css目录: pom.xml <properties> <spring.version>4.3.5.RELEASE</ ...
- 最小可用 Spring MVC 配置
[最小可用 Spring MVC 配置] 1.导入有概率用到的JAR包, -> pom.xml 的更佳实践 - 1.0 <- <project xmlns="http:// ...
随机推荐
- jQuery 学习之路(1):引子
一.主流 javascript 库 除 jQuery 外,还有 Prototype.Dojo.YUI.ExtJS.MooTools ,其中 Prototype 较老,结构设计较为松散,ExtJS 界面 ...
- c++异常总结
堆栈辗转开解(stack-unwinding):如果一个函数中出现异常,在当前函数内即通过 try..catch 捕捉(且捕捉到)的话,可以继续往下执行:如果不捕捉(或未捕捉到)就会抛出(与通过 th ...
- 2015年12月01日 GitHub入门学习(一)GitHub简介
序:Github理念是Social Coding(社会化编程).octocat是它的吉祥物. 一.Github与Git的区别与联系 区别:GIT是仓库,Github是提供一种将代码提交到Git仓库的服 ...
- Tomcat 6 --- 使用Jasper引擎解析JSP
熟悉JAVA web开发的朋友都知道JSP会被转换成java文件(预编译),然后编译成class使用,即按照JSP-->java-->class的过程进行编译. 由于JVM只认识class ...
- linux 驱动 工作队列
http://blog.sina.com.cn/s/blog_78d30f6b0102uyaf.html http://blog.csdn.net/lyc_stronger/article/detai ...
- MyEclipse 自动提示设置
window --> Perferences--> General--> keys Content Assist默认的是Ctrl +space Content Assist快捷键设置 ...
- Codeforces Round #340 Watering Flowers
题目: http://www.codeforces.com/contest/617/problem/C 自己感觉是挺有新意的一个题目, 乍一看挺难得(= =). 其实比较容易想到的一个笨办法就是:分别 ...
- scoll滚动
[前端性能]高性能滚动 scroll 及页面渲染优化 最近在研究页面渲染及web动画的性能问题,以及拜读<CSS SECRET>(CSS揭秘)这本大作. 本文主要想谈谈页面优化之滚动优 ...
- iOS开发——高级篇——Parse 教程:网络后台基础
本教程已针对Swift, iOS 8.3, Xcode 6.3及最新的Parse SDK(1.7.1版本)更新. 网络后台支持可以为你的App添加许多崭新的功能:不论是数据同步,社交分享,还是云端存储 ...
- call(),apply()和bind()
三个函数都是Function对象自带的三个方法,主要作用是改变函数中this的指向. call() 语法 fun.call(thisArg[, arg1[, arg2[, ...]]]) 该方法可以传 ...