通过URL请求tomcat服务器直接下载文件

从一个服务器上下载文件,是很常见的情况。通常我们想通过URL来访问直接下载一个文件,对于Tomcat服务器而言,是非常简单的,Tomcat本身就是作为一个web服务器的,通过简单的配置就可以实现。

配置如下:

1、在tomcat服务器上的server.xml(tomcatconf)的文件中添加下面一行(如已存在,只需修改下内容):

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="false" xmlValidation="false" xmlNamespaceAware="false">

<Context path="/download"docBase="D:/download" debug="0" privileged="true"/>

<!– SingleSignOn valve, share authentication between web applications

Documentation at: /docs/config/valve.html –>

<!–

<Valve className="org.apache.catalina.authenticator.SingleSignOn" />

–>

<!– Access log processes all example.

Documentation at: /docs/config/valve.html

Note: The pattern used is equivalent to using pattern="common" –>

</Host>

其中docBase是指服务器上的文件地址,path是指URL访问时的路径。

2、重启tomcat,使用URL直接下载。

例如:下载地址 http://服务器IP:port/download/test.txt

注意:

解决包含中文文件名无法下载的问题:

通过上面的配置,如果下载文件的文件名中带中文,则将无法下载。需要添加tomcat的server.xml文件中URIEncoding="UTF-8"

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8081"URIEncoding="UTF-8"/>