JavaWeb 两种方式文件下载

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_38320255/article/details/81214263

以下是关于,如何设置从服务器进行文件下载。有两种方法:1.a标签下载 2.Servlet下载。

a标签事实上不需要部署Servlet,只需要告诉它文件所在位置即可。不过缺点是,浏览器会自动解析文件内容。如:如果是txt文档或图片,浏览器会自动打开,而不是以附件的形式进行下载。而zip等浏览器无法打开时,才会以下载的方法,让你进行处理。

操作如下:

1.我们先在eclipse中创建一个动态网页工程。起名为DownLoadTest。然后在WebContent中创建一个index.htmt网页。该网页则为我们启动服务器时默认打开的网页。而我们以a标签形式下载文件的代码也在其中编写。

2.我们在WebContent中创建一个download文件夹,并将要下载的文件放在其中。

3.接着就可以在index.html中编写a标签了,如下:

4.事实上,这样一个以a标签形式的文件下载就完成了。注意a标签中href的路径。像第一个:它的在当前应用,也就是我们创建的DownLoadTest下的download文件夹中的123.txt.而这正是我们123.txt的位置。所以这个a标签的路径就是指向的123.txt。其他两个也是同样的。这时候,我们运行该应用。并在浏览器中打开网址可以看到如下:

 

我们点击123.txt,就会在浏览器中直接打开

而我们点击123.zip,就会在浏览器下方提示,是否下载:

以上就是a标签下载。

 

2.以Servlet方式进行文件下载。

以Servlet形式下载则可以设置以附件的形式下载。这样浏览器就不会解析,并打开。

操作如下:

1.首先,我们要创建一个Servlet,起名为DownLoad

2.然后我们在index.html中设置以Servlet形式下载:

其中herf中的路径,指向的是我们是Servlet(DownLoad),而后面的filename是我们传入Sevlet的参数,因为我们要以Servlet方式下载,所以我们必须告诉Servlet,我们要下载的是哪个文件。之后我们便可以设置Servlet了。

这时我们运行,它便是以Servlet形式进行文件下载的了。

然而出现了两个问题:1.当我们点击123.txt时,它仍是在浏览器中打开。

              原因:是因为我们没有设置以附件的形式下载。

2.当我们点击123.zip时,它是提示下载了,但名称错误,而且没有下载类型。

             原因:我们没有设置响应的mimetype。

我们在代码中进行添加:

这时我们重新打开index.html,并点击下载。会发现123.txt不再是在浏览器中打开,而是提示你下载

并且他还显示后缀.txt形式。我们点击123.zip也是同样:

展开阅读全文

没有更多推荐了,返回首页