jsp页面怎么传文件路径形式的字符串给servlet,然后使servlet用浏览器下载这个文件路径字符串指向的文件到客户端?

weixin_38974328 2017-12-02 02:45:43

我写了一下相关的代码,在hsp页面端点击一个按钮,该按钮的点击事件执行时,通过ajax把文件名传到servlet,servlet没有报异常,但是浏览器就不弹出下载文件提示。这个要怎么解决。正确的代码是什么


$("#btn").click(function() {
$.ajax({
type: "GET",
url: "http://127.0.0.1:8080/javaWebDome/DownloadFileServlet",
data: "downFile="+"1.txt",
success: function(data,text,jqHR){
},
error: function(data,text,jqHR)
{
alert("错误");
},
})

});



public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

String fileName=request.getParameter("downFile");
System.out.println(fileName); //这里能输出
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
response.setContentType("APPLICATION/OCTET-STREAM");

String dowmName="下载"+fileName.substring(fileName.lastIndexOf("."));
response.setHeader("Content-Disposition", "attachment; filename=\""+new String(dowmName.getBytes("utf-8"),"ISO-8859-1")+"\"");
FileInputStream fileInputStream = new FileInputStream("f:/aaa/"+fileName);
int i = 0;
while ((i = fileInputStream.read()) != -1) {
out.write(i);
}
fileInputStream.close();
out.close();

}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);

}

...全文
127 3 点赞 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
weixin_38974328 2017-12-03
引用 1 楼 pany1209 的回复:
直接用window.open(url);不就得了。。你这种方法不会弹出下载框的
我没使用过window.open函数来下载一个指定路径的文件,所以不会,能请你能写个代码示范一下吗?页面把文件名传给servlet,然后在servlet那边拼接成一个路径,然后下载这个路径指向的文件
  • 打赏
  • 举报
回复
挖坑小能手 2017-12-03
下载的话不要用ajax,直接访问就行,,location.href=url 或者超链接 <a href=url> 或者1楼的window.open(url)都行
  • 打赏
  • 举报
回复
李德胜1995 2017-12-02
直接用window.open(url);不就得了。。你这种方法不会弹出下载框的
  • 打赏
  • 举报
回复
相关推荐
发帖
Java EE
加入

6.7w+

社区成员

J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
申请成为版主
帖子事件
创建了帖子
2017-12-02 02:45
社区公告
暂无公告