由于java web无法下载_javaweb文件下载 部署到服务器文件下载有问题

本文分享了在Java Web应用中遇到的文件下载问题,包括通过超链接和后台代码两种下载方式。在Windows环境下运行正常,但在部署到Linux服务器时出现问题。解决方法是将文件路径中的反斜杠替换为正斜杠。
摘要由CSDN通过智能技术生成

最近做了一个网站,有关检索的一个系统,里边涉及到了文件的下载和查看(pdf文件),遇到了一些问题,现在和大家分享一下我解决的办法:

文件下载总的来说有两种方式(我认为的啊,别当真),

一种是通过超链接的方式:下载   这种方式就可以下载根路径下的download下的文件了,

但是这种下载只能下载 .rar文件,当下载pdf或者图片的时候,他就不打开那个文件,所以这种方式一般用于实现查看全文或者预览全文的功能。

第二种就是使用后台代码的方式了,这种方式首先要请求到后台,我就以ssh框架为例,演示一下:

首先是页面上的代码,我就用了一个超链接

下载

之后是后台代码

public String downloadFile() {

String fileName = ServletActionContext.getRequest().getParameter("fileName");  //获取前台传过来的文件名

HttpServletRequest request = ServletActionContext.getRequest(); //获取request对象

HttpServletResponse response=ServletActionContext.getResponse(); //获取response对象

response.setHeader("Content-Disposition", "attachment;filename="+fileName);  //

String fullFileName=request.getSession().getServletContext().getRealPath("") +"\\download\\"+fileName;

try{

InputStream in = new FileInputStream(fullFileName);

OutputStream out = response.getOutputStream();

//写文件

int b;

while((b=in.read())!= -1)

{

out.write(b);

}

in.close();

out.close();

}

catch(Exception e){

}

return "rdate";  //

}

这样就可以实现文件的下载了(可以下载根路径下的download下的文件了),在Windows里完全没问题(我亲自试过的)

------------------------------------------------------------------------------------------------------------------------------------------------

之后我就开开心心的把这个项目部署到服务器上去了测试了(Linux系统),那么问题来了,在服务器上的项目居然不能下载,郁闷了,之后开始寻找解决办法,

最后发现问题了,原来Linux系统的目录是xxx/xxx/xxx的格式 而Windows下是xxx\xxx\xxx的格式,所以要部署到Linux系统下这个程序还得修改一下,把

String fullFileName=request.getSession().getServletContext().getRealPath("") +"\\download\\"+fileName;这句话的 \\ 换成/ 就可以了

String fullFileName=request.getSession().getServletContext().getRealPath("") +"/download/"+fileName;

好了,完成了,有什么不对的地方欢迎大家指出来,大家一起学习

也可加本人qq:212966054

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值