码迷,mamicode.com
首页 > 编程语言 > 详细

java学习之文件下载

时间:2015-12-04 09:12:46      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:

java代码-

package com.hisun.auth.demo.controller;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.util.Date;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;

public class DownloadRecordFilter implements Filter{

private String dir="/WEB-INF/OA/record";
public void destroy() {

}

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpRequest = (HttpServletRequest)request;
HttpServletResponse httpResponse = (HttpServletResponse)response;
String path=httpRequest.getRequestURI();
if(path.endsWith("DownloadRecord")){
downloadRecord(httpRequest, httpResponse);
}else{
chain.doFilter(request, response);
}
}

private void downloadRecord(HttpServletRequest request, HttpServletResponse response) throws IOException {
String fileName=request.getParameter("fileName");
String path=request.getSession().getServletContext().getRealPath(dir)+"/"+fileName;
File file=new File(path);
if (!file.exists()) {
response.getWriter().print("<script type=\"text/javascript\">alert(\"\\u6587\\u4EF6\\u4E0D\\u5B58\\u5728\\uFF01\");window.opener=null;window.close();</script>");
return;
}

//设置文件MIME类型
response.setContentType(request.getSession().getServletContext().getMimeType(fileName));
//设置Content-Disposition
response.setHeader("Content-Disposition", "attachment;filename="+fileName);
response.setCharacterEncoding("UTF-8");

InputStream in = new FileInputStream(path);
OutputStream out = response.getOutputStream();

//写文件
int b;
while((b=in.read())!= -1)
{
out.write(b);
}

in.close();
out.close();
}

public void init(FilterConfig arg0) throws ServletException {

}

}

web-xml配置-

<!--下载录音文件 拦截器 -->
<filter>
<filter-name>DownloadRecordFilter</filter-name>
<filter-class>com.hisun.auth.demo.controller.DownloadRecordFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>DownloadRecordFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

页面调用

function downloadRecord(fileName){//fileName为asd.mp3
var $ = jQuery;
if(fileName==null||fileName==‘‘){
alert(‘文件名为空‘);
return;
}
var url = "../DownloadRecord?fileName=" + fileName;
width = 300;
height = 200;
var lleft = (document.body.clientWidth - width) / 2;
var ltop = (document.body.clientHeight - height) / 2 - 15;
window.open(url,‘录音文件下载‘, ‘height=‘+height+‘, width=‘+width+‘, top=‘+ltop+‘, left=‘+lleft+‘, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no‘);
}

 

java学习之文件下载

标签:

原文地址:http://www.cnblogs.com/hy23/p/5018282.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!