Tomcat上的Java Web应用程序 - 显示用户上载的文件

时间:2011-01-07 14:52:05

标签: java tomcat file-upload spring-mvc download

我需要在Web应用程序上显示上传的文件,流程如下

  1. 用户通过网络上传文件
  2. 图片验证
  3. 致电imageRepository.store( uploadedImage, user.getSite() )
  4. 用户希望显示的图片添加<img src="${anUploadedImage.getUrl()}"/>
  5. 但这就是我被困住的地方,getUrl()可以做些什么?简单的解决方案是将其置于某个位置并让Apache为该文件提供服务,但之后我无法使用该应用程序来确保一个用户不修改URL以查看其他用户文件,在这种情况下这很重要

1 个答案:

答案 0 :(得分:0)

如果要管理文件的路径,可以使用几个选项。

  1. 您可以创建服务以按ID返回文件。本质上,此控制器操作(或servlet)将从存储库存储中加载映像并将其序列化回用户。这提供了最大的控制权。
  2. 您可以创建一个执行所需控件的过滤器,然后委托回Web服务器来执行实际的文件服务。这仍然可以让您控制,但是可以从您的应用中负责,以有效地序列化文件。
  3. 我想要验证的一件事(因为我不确定${anUploadedImage}是什么类型)是URL getUrl()返回的内容。如果它是File对象,则getUrl()提供在HTML中无用的文件URL。基本上,Web浏览器会查看用户的驱动器或报告某种可疑活动。

    您在HTML中包含的网址需要指向您的服务将发送所需图片的位置。