如何隐藏我的网络服务器上的文件?我有一个目录“ files
”,其中存储了一些 pdf 文件。我不想让用户通过这样的 URL 访问文件:
www.example.com/files/1.pdf
而不是这个,我想在数据库中映射每个文件和一个 id 并让用户像这样访问它:
www.example.com/fileId=5569a
用户应该无法访问该files
目录。
我怎样才能做到这一点?
如何隐藏我的网络服务器上的文件?我有一个目录“ files
”,其中存储了一些 pdf 文件。我不想让用户通过这样的 URL 访问文件:
www.example.com/files/1.pdf
而不是这个,我想在数据库中映射每个文件和一个 id 并让用户像这样访问它:
www.example.com/fileId=5569a
用户应该无法访问该files
目录。
我怎样才能做到这一点?
这是一个非常前卫的答案
首先,您应该使用部署描述符 (web.xml) 拒绝对目录的访问
<security-constraint>
<display-name>excluded</display-name>
<web-resource-collection>
<web-resource-name>No Access</web-resource-name>
<url-pattern>/files/*</url-pattern>
</web-resource-collection>
<web-resource-collection>
<web-resource-name>No Access</web-resource-name>
<url-pattern>/files/*</url-pattern>
<http-method>DELETE</http-method>
<http-method>PUT</http-method>
<http-method>HEAD</http-method>
<http-method>OPTIONS</http-method>
<http-method>TRACE</http-method>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint />
<user-data-constraint>
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
</security-constraint>
现在您的文件是安全的,您必须实现一个带有 url-mapping '/' 的 Servlet,它将检查请求中的 'fileId' 参数。如果找到它,servlet 将向用户提供文件下载,否则它将用户重定向到主页。
有关实现 servlet,请参阅单击超链接时调用 servlet
实现文件下载请看我的帖子有没有一种通用的方法可以在jsp中下载所有类型的文件?