您的位置:首页 > 编程语言 > Java开发

java实现文件下载的工具类-----------什么都可以下载,只要传入response和文件路径 两个参数

2013-09-11 11:46 645 查看
import java.io.BufferedInputStream;

import java.io.BufferedOutputStream;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletResponse;

public class DownLoadUtils {

public static String getContentType(String fileName) {

String fileNameTmp = fileName.toLowerCase();

String ret = "";

if (fileNameTmp.endsWith("txt")) {

ret = "text/plain";

}

if (fileNameTmp.endsWith("gif")) {

ret = "image/gif";

}

if (fileNameTmp.endsWith("jpg")) {

ret = "image/jpeg";

}

if (fileNameTmp.endsWith("jpeg")) {

ret = "image/jpeg";

}

if (fileNameTmp.endsWith("jpe")) {

ret = "image/jpeg";

}

if (fileNameTmp.endsWith("zip")) {

ret = "application/zip";

}

if (fileNameTmp.endsWith("rar")) {

ret = "application/rar";

}

if (fileNameTmp.endsWith("doc")) {

ret = "application/msword";

}

if (fileNameTmp.endsWith("ppt")) {

ret = "application/vnd.ms-powerpoint";

}

if (fileNameTmp.endsWith("xls")) {

ret = "application/vnd.ms-excel";

}

if (fileNameTmp.endsWith("html")) {

ret = "text/html";

}

if (fileNameTmp.endsWith("htm")) {

ret = "text/html";

}

if (fileNameTmp.endsWith("tif")) {

ret = "image/tiff";

}

if (fileNameTmp.endsWith("tiff")) {

ret = "image/tiff";

}

if (fileNameTmp.endsWith("pdf")) {

ret = "application/pdf";

}

return ret;

}

//下载部分

public static void fileDownLoad(HttpServletResponse response,String filePath) throws ServletException {

BufferedInputStream bis = null;

BufferedOutputStream bos = null;

OutputStream fos = null;

InputStream fis = null;

String fileName = filePath.substring(filePath.lastIndexOf("/")+ 1, filePath.length());

try {

response.reset();

response.setContentType(getContentType(fileName));

response.setHeader("Content-disposition", "attachment;filename="+ new String(fileName.getBytes("gb2312"), "ISO8859-1"));

fis = new FileInputStream(filePath);

bis = new BufferedInputStream(fis);

fos = response.getOutputStream();

bos = new BufferedOutputStream(fos);

int bytesRead = 0;

byte[] buffer = new byte[5 * 1024];

while ((bytesRead = bis.read(buffer)) != -1) {

bos.write(buffer, 0, bytesRead);// 将文件发送到客户端 }

bos.close();

bis.close();

fos.close();

fis.close();

}

} catch (IOException e) {

response.reset();

e.printStackTrace();

} finally {

try {

if (fos != null) {

fos.close();

}

if (bos != null) {

bos.close();

}

if (fis != null) {

fis.close();

}

if (bis != null) {

bis.close();

}

} catch (IOException e) {

System.err.print(e);

}

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: