用Servlet實(shí)現下載
linzhiju 原創(chuàng ) (參與分:10796,專(zhuān)家分:240) 發(fā)表:2004-11-12 13:03 版本:1.0 閱讀:2604次
以前不太重視Servlet,覺(jué)得servlet能夠實(shí)現的功能,jsp都能實(shí)現,這一階段猛學(xué)servlet,很有感觸,正好一網(wǎng)友法帖求助,怎樣用servlet實(shí)現下載。我就貼一篇吧,以供大家參考(主要的Servlet,關(guān)聯(lián)文件沒(méi)有貼出):
/*
* DownLoad.java
*/
package com.zy.oa.util;
import java.io.*;
import java.text.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.net.*;
/**
* 實(shí)現下載功能
*/
public class DownLoad {
public void downLoad(HttpServletResponse response, String headName, String fileUrl) throws Exception{
Logger.log("begin download " + headName);
if (headName.endsWith(".jpg") || (headName.endsWith(".gif"))) {
//no need setting content type and header
} else if (headName.endsWith(".txt")) {
response.setContentType( "text;charset=GB2312");
response.setHeader("Content-disposition",
"attachment; filename=" + headName );
} else {
response.setContentType( "application/doc;charset=GB2312");
response.setHeader("Content-disposition",
"attachment; filename=" + headName );
}
String fileURL = fileUrl;
Logger.log(fileURL);
if(fileURL == null)
return;
try{
File file = new File(fileUrl);
FileInputStream bis = new FileInputStream(file);
OutputStream bos = response.getOutputStream();
byte[] buff = new byte[1024];
int readCount = 0;
int i = 0;
readCount = bis.read(buff);
while (readCount != -1){
bos.write(buff, 0, readCount);
readCount = bis.read(buff);
}
Logger.log("read finished!");
if (bis!=null)
bis.close();
if (bos!=null)
bos.close();
}catch(Exception e){
e.printStackTrace();
throw e;
}
}
}
版權聲明 本篇文章對您是否有幫助? 投票:
是 否 投票結果:
9
2
作者其它文章:
用web_xml控制Web應用的行為(下)轉貼用web_xml控制Web應用的行為(上)待徐作者全部文章上一篇文章返回〔JSP/Servlet/JSF〕下一篇文章