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

java 通用文件下载 excel,pdf,word,jpg,exe,rar

2009-07-09 17:23 453 查看
<%@ page contentType="text/html; charset=GBK" %>
<%@ page autoFlush="false" %>
<%@ page import="java.sql.*" %>
<%@ page import="java.io.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.awt.*" %>
<%@ page import="java.awt.image.*" %>
<%@ page import="com.sun.image.codec.jpeg.*" %>
<%@ page import="com.sun.image.codec.jpeg.*" %>

<%!
public static String getcontentType(String pextFileName) //获得扩展名 by gisoracle {
String pext=pextFileName.toLowerCase();
if (pext.equals(".xls"))
{
return "application/vnd.ms-excel";
}
if (pext.equals(".doc"))
{
return "application/msword";
}
if (pext.equals(".txt"))
{
return "text/plain";
}
if (pext.equals(".pdf"))
{
return "application/pdf";
}
if (pext.equals(".jpg")||pext.equals(".jpeg"))
{
return "image/jpeg";
}
if (pext.equals(".ppt"))
{
return "application/vnd.ms-powerpoint";
}
if (pext.equals(".gif"))
{
return "image/gif";
}
return "text/html";
}
%>
<%
String filename =request.getParameter("filename");
File downFile = new File(filename);
String fileext=FileOper.getFiletype(downFile);
System.out.println("fileext="+fileext);
String contentType1 =getcontentType(fileext);
System.out.println("contentType1="+contentType1);
try {
out.clear();
response.setContentType(contentType1);
filename = new String(filename.getBytes("GBK"), "ISO-8859-1");
response.setHeader("Content-Disposition","attachment; filename=" +downFile.getName());
response.addHeader("Cache-Control", "no-cache");
InputStream blobStream = new FileInputStream(downFile);
ServletOutputStream outStream = response.getOutputStream();
byte[] buffer = new byte[10 * 1024];
int nbytes = 0;
while ( (nbytes = blobStream.read(buffer)) != -1) {
outStream.write(buffer, 0, nbytes);
}
outStream.flush();
outStream.close();
blobStream.close();
}
catch (Exception e) {
System.out.println(e);
}
%>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: