- 论坛徽章:
- 0
|
以前不太重视Servlet,觉得servlet能够实现的功能,jsp都能实现,这一阶段猛学servlet,很有感触,正好一网友法帖求助,怎样用servlet实现下载。我就贴一篇吧,以供大家参考(主要的Servlet,关联文件没有贴出):
/*
* 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.*;
/**
* 实现下载功能
*/
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;
}
}
}
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/884/showart_90418.html |
|