我需要在我的webapp之外上传文件,并可以在浏览器之后提供这些文件。所以看了很多帖后我决定创建一个符号链接。我有一个问题,因为我已经在tomcat5/Catalina/loclahost/myApp.xml
中有了一个上下文。
我添加了属性allowlinking = true和override = true。
但我无法使用浏览器访问上传的文档。
我认为这两个重定向不能一起工作,但我不知道如何以任何其他方式进行。
所以欢迎任何想法
答案 0 :(得分:1)
如果您需要一个安全的位置来将文件上传到您的webapp,您需要将它们完全置于任何webapp的文档库之外 - 并且包括使用符号链接通过利用DefaultServlet来将它们“挂载”到您的URL空间中那些比特适合你。否则,如果取消部署webapp,您将面临使Tomcat删除所有上传文件的风险。
如果您没有选择升级到Tomcat 7.0(我强烈推荐),那么我建议您编写自己的servlet,将其映射到/ myapp / files / *,并让该servlet读取来自上传目录的文件,并将这些位提供给客户端。有一些方法可以让DefaultServlet为您执行此操作(而不是在您自己的servlet中基本上复制其完整的功能集),但它并不总是运行良好,并且可能在旧版本的Tomcat中根本不起作用,因为DefaultServlet假定它映射到“/”而不是“/ files”。