如何在java中使用Servlet下载文件?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
1、说明
Servlet是Sun公司开发的用于交互式地浏览和生成数据,生成动态Web的技术。狭义的Servlet是指Java语言实现的一个接口。但一般情况下,我们把实现了Servlet接口的Java程序叫做Servlet
//得到需要下载的文件 String path = this.getServletContext().getRealPath("/upload/9/1/图片1.png"); File file = new File(path); //读取服务器本地的文件 FileInputStream in = new FileInputStream(file); /** * 处理URL编码问题 */ String fileName = file.getName(); //对文件名进行URl编码 fileName = URLEncoder.encode(fileName, "utf-8"); //判断不同浏览器 String userAgent = request.getHeader("user-agent"); String filefix = null; if(userAgent.contains("Trident")){ //IE filefix = "filename="+fileName; }else if(userAgent.contains("Firefox")){ //Firefox filefix = "filename*="+fileName; }else{ filefix = "filename="+fileName; } //告诉浏览器以下载方式打开资源 response.setHeader("Content-Disposition", "attachment;"+filefix); //把本地文件发送给浏览器 byte[] buf = new byte[1024]; int len = 0; while( (len=in.read(buf))!=-1 ){ response.getOutputStream().write(buf, 0, len); } //关闭 in.close();
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。