话不多说,并不难,看代码就可以,重点是response.setContentType和response.setHeader两个的设置
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 java.net.URLEncoder;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.nxmu.uploadOrdownload.app.beans.fileupload;
import com.nxmu.uploadOrdownload.app.dao.Impl.fileuploadDao;
public class filedowloadServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private fileuploadDao dao = new fileuploadDao();
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
int id = Integer.parseInt(request.getParameter("id"));
fileupload fileUpload = dao.getBean(id);
response.setContentType("application/x-msdownload");
response.setHeader("Content-Disposition", "attachment;filename="
+ URLEncoder.encode(fileUpload.getFileName(), "utf-8"));
OutputStream os = response.getOutputStream();
BufferedOutputStream bos = new BufferedOutputStream(os);
InputStream is = new FileInputStream(fileUpload.getFilePath());
BufferedInputStream bis = new BufferedInputStream(is);
byte[] buffer = new byte[1024];
int len;
while((len = bis.read(buffer)) != -1) {
bos.write(buffer, 0, len);
}
if(bos != null) {
bos.close();
}
if(bis != null) {
bis.close();
}
if(is != null) {
is.close();
}
if(os != null) {
os.close();
}
}
}
下载excel文件的格式为:
String encoding = System.getProperty("file.encoding");
response.setContentType("application/vnd.ms-excel;charset="+encoding);
response.setHeader("Content-Disposition", "attachment;filename="+URLEncoder.encode(fileName,encoding));