美文网首页Java 杂谈
Java成神之路!资深程序员:Java文件下载项目经验分享!

Java成神之路!资深程序员:Java文件下载项目经验分享!

作者: a847c1ac3b3f | 来源:发表于2019-05-19 17:01 被阅读3次

    在Web应用系统开发中,文件下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件下载功能的实现。

    需求:实现一个具有文件下载功能的网页,主要下载压缩包和图片

    两种实现方法:

    一:通过超链接实现下载

    在HTML网页中,通过超链接链接到要下载的文件的地址

    其中day06/download是文档路径,本实例的程序结构如下:

    程序运行后,可以通过单击需要下载文档实现下载

    但是这里会出现一个问题,就是单击下载压缩包的时候会弹出下载页面,但是下载图片的时候浏览器就直接打开了图片,没有下载。

    这是因为通过超链接下载文件时,如果浏览器可以识别该文件格式,浏览器就会直接打开。只有浏览器不能识别该文件格式的时候,才会实现下载。因此利用第二种方法实现下载功能。

    二:通过Servlet程序实现下载

    通过Servlet下载文件的原理是通过servlet读取目标程序,将资源返回客户端。

    其中,/day06/ServletDownload 是servlet程序的映射路径

    然后新建一个servlet,名称为ServletDownload,URL映射为/ServletDownload

    添加代码如下:

    重启tomcat服务器,即可实现对压缩包和对图片的下载。

    三、小技巧:

    点击链接来下载文件的方式很简便,后台把文件流输出来,通过浏览器实现下载功能,包括询问位置与文件存放,大多数浏览器会配置一个固定位置,不一定每次都问。

    前端就非常简单了,一个<a>标签,href=“后台方法地址”,如果你的需求不能直接用超链接方式,可以在js里写 window.location.href =“后台方法地址”。

    这样跳转到后台方法后

    浏览器会直接识别这种形式的文件输出,弹出对话框。

    注意此方法一定要用链接方式调后台,使用ajax和XMLHttpRequest方式都是不行的,这样返回的文件流会返回到方法的回调函数中,当然如果你想在js中获取文件,这样也行。

    如果有想学习java的同学,可来我们的java技术学习QQ群:928204055,免费送整套系统的java视频教程!我每晚上8点还会在群内直播讲解Java知识,这是一个仅供粉丝朋友们学习交流的群,欢迎大家前来学习哦~不是学习Java的小伙伴非诚勿扰哦下面是部分资料截图:

    欢迎关注胖胖爱Java的简书号,可视化学习java,每天更新文章,让Java学习更加简单。

    声明:本文内容来源于网络,如有侵权请联系删除

    相关文章

      网友评论

        本文标题:Java成神之路!资深程序员:Java文件下载项目经验分享!

        本文链接:https://www.haomeiwen.com/subject/jdhqzqtx.html