当前位置:编程学习 > JAVA >>

web问题求高手,jsp+servlet实现文件下载

jsp+servlet实现文件下载,在jsp中点击,通过servlet判断读取文件,实现文件的下载 jsp web servlet --------------------编程问答-------------------- 留个邮箱 发个实例给你 --------------------编程问答-------------------- 2楼我也要个 924552477@qq.com --------------------编程问答-------------------- 344520158@qq.com....谢谢了 --------------------编程问答--------------------

HttpServletResponse response = ServletActionContext.getResponse();
PrintWriter out;
try {

StringBuilder sb = cb.getCsv();

String csvName = cb.getCsvName();

// String csvName = "MG-" + enterid + "-" + cb.getTime() + ".csv";
response.setContentType("application/csv; charset=GB2312");
response.setHeader("Content-Disposition", "inline; filename=\""
+ new String(csvName.getBytes("UTF-8"), "ISO8859-1") + "\"");

out = new PrintWriter(new OutputStreamWriter(response.getOutputStream(), "GB2312"));

out.print(sb);

out.flush();
out.close();

这样基本就差不多了。。
当然,response.getOutputStream()
这个要注意,直接获取的是jsp的输出流,建议不要直接用out的,而且是out下的write --------------------编程问答-------------------- //JSP文件
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
//为防止下载时文件名乱码统一用utf-8
<h1>文件共享下载</h1>
<table>
<tr><td>aa.png</td><td><a href='MyJsp.jsp/loadServet?filename=aa.png'>点击下载</a></td>tr>
<tr><td>aa.mp3</td><td><a href='MyJsp.jsp/loadServet?filename=aa.mp3'>点击下载</a></td></tr>
<tr><td>cc.rmvb</td><td><a href='MyJsp.jsp/loadServet?filename=cc.rmvb'>点击下载</a></td></tr>
</table>
//Servlert文件
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
//演示下载
String filename=request.getParameter("filename");//获取要下载的文件名
String name=new String(filename.getBytes("iso-8859-1"),"utf-8");//String name=java.net.URLDecoder.decode(name0, "utf-8");
response.setHeader("Content-Disposition", "attachment;filename="+name);
//先读取该图片,再将数据发给浏览器
//获取要下载文件的全路径(我所有文件放在WebRoot/res/)
String path=this.getServletContext().getRealPath("/res/"+name);
//创建输入文件流
FileInputStream fis=new FileInputStream(path);
//创建一个缓冲字节数组
byte []buff=new byte[1024];
int len=0;//表示实际每次读取多少个字节
OutputStream os=response.getOutputStream();
while((len=fis.read(buff))>0){
os.write(buff, 0, len);
}
//关闭资源
fis.close(); --------------------编程问答-------------------- 用smartupload吧。 --------------------编程问答-------------------- 都没有我想要的答案。。。。各位写的代码都是直接把文件放在了jsp也的<a>中,我要的是jsp页的文件名是从数据库中读出的,数据库中已经存有了文件的路径,在jsp页从数据库中获取路径,然后通过servlet判断进行下载。。。。。 --------------------编程问答-------------------- 我也要 793597462@qq.com  --------------------编程问答-------------------- 我也十分的想要啊   389373935@qq.com --------------------编程问答-------------------- 2楼的说是给我发,,,
一直也没收着,要是收着了就给各位分享一下了。。。。。期待啊。。。。 --------------------编程问答-------------------- 顶一下,要分享呀 --------------------编程问答-------------------- 下载不是给个链接浏览器自动下载吗?
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,