网站文件下载链接

如何将网站上的文件让别人下载呢?

  最简单的方式就是直接把文件的链接地址放到页面上,如一个a链接,点击该链接直接访问文件,即会下载。

  经过测试,不提供文件地址,访问一个servlet,返回该文件地址也可以下载文件。这种方式的好处隐藏了文件的真实地址,还可以在下载前对下载行为进行判断,如是否登录。对于没有登录的用户可以提示他登录不会下载文件。在servlet中下载文件的文件名依据web.xml中的url-pattern决定。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>down</display-name>
  <servlet>
    <servlet-name>inst1</servlet-name>
    <servlet-class>com.lh.down.test</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>inst1</servlet-name>
    <url-pattern>/inst1.exe</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>

 

 1 package com.lh.down;
 2 
 3 import java.io.IOException;
 4 
 5 import javax.servlet.RequestDispatcher;
 6 import javax.servlet.ServletException;
 7 import javax.servlet.http.HttpServlet;
 8 import javax.servlet.http.HttpServletRequest;
 9 import javax.servlet.http.HttpServletResponse;
10 
11 public class test extends HttpServlet {
12     @Override
13     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
14         RequestDispatcher dispatcher = req.getRequestDispatcher("/jsp/inst.exe");
15         dispatcher .forward(req, resp);
16     }
17     
18     @Override
19     protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
20         doGet(req, resp);
21     }
22 }

 访问url-pattern,即会下载文件。

原文地址:https://www.cnblogs.com/duex/p/6376331.html