web网页上的文件下载功能

首先提供下我的下载页面


那么要实现这么一种下载的话,tomcat的配置起到了关键性作用

第一:配置虚拟目录

在tomcat/config/server.xml中找到<host>标签,在中间加上

 

<Context path="/myweb" docBase="E:\myweb" debug="0" reloadable="true" crossContext="true"> 

</Context> 

其中myweb为虚拟目录,即运行起项目后,我们的链接应该不含项目直接为:http://ip:port/myweb

这样的话实际找到文件时才会自动映射到真实的磁盘目录:D:\myweb

关于虚拟目录配置更多请参考我之前的文章内容

 

第二:为中文文件下载做支持

由于WEB网页上下载中文名称文件找到真实文件后会在地址上出现乱码,导致无法下载,这样,就要在

tomcat/config/server.xml中找到

  <Connector port="8080" protocol="HTTP/1.1" 

               connectionTimeout="20000"    redirectPort="8443" />

 为这个标签加上一个属性: URIEncoding="utf-8"

关于更多链接中文文件下载请参考我之前的文章内容

 

 

第三:配置下载文件的文件类型

我们做的这些操作都是在电脑上进行操作,所以服务器tomcat一定要配置好下载类型,这样远端客户端才能正常下载

找到tomcat/config/web.xml在众多mime-mapping中加上

 

<mime-mapping>

      <extension>rar</extension>

      <mime-type>application/rar</mime-type>

</mime-mapping>

这里我只是加上了rar类型,可能还有许多类型,这得你自己配置了,不过web.xml中已经配置好了大多数文件的mime类型

关于mime类型的详细列表,请参考我之前的文内容

 

 

具体示例【前提是在tomcat中上面三点都配置好了】:

index.html

 

<html>
	<head>
		 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
		<meta http-equiv="refresh" content="0; url=index.jsp" />
	</head>
</html>

 index.jsp

 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="java.io.File"%>
<%
File file=new File("E:/myweb");
File[] files=file.listFiles();
request.setAttribute("files",files);
request.getRequestDispatcher("/download.jsp").forward(request,response);
%>

 download.jsp

 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head><title>下载页面</title></head>
<body>
<h3>请点击下载下面的文件【或者通过右键"目标另存为"的方式进行下载】</h3><hr/>
<table border="1" bordercolor="black" cellpadding="5" cellspacing="5">
<c:forEach items="${files}" var="file">
<tr>
  <td>${file.name}</td><td><a href="http://192.168.1.103:8080/myweb/${file.name}">下载</a></td>
</tr>
</c:forEach>
</table>

</body>
</html>

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值