我有一个类似" downloads"的文件夹。 (完整路径:"C:\tomcat\downloads"
)。
这是我扔掉所有上传文件的文件夹。现在我想像这样访问它们:
<a href ="localhost:8080/exampleproject/downloads/image.jpg"> Clickme </a>
在此文件夹&#34; downloads&#34;中可以是任何内容。
唯一的问题是如何制作公用文件夹。目前我可以将发送的文件保存到磁盘并删除它们。但是,我想像上面那样访问它们。
这取决于spring或tomcat服务器的配置?一些例子......
答案 0 :(得分:2)
阅读时
<a href ="examplelink"> Clickme </a>
浏览器将发送Http Request,方法GET链接&#34; examplelink&#34;。因此,在服务器中我们需要创建控制器捕获此GET请求。例如:
<img src="image/getimage.html?fileName=${product.imageName }" alt="" title="" width="100" height="100" class="thumb" border="0" />
我们将收到请求
http://localhost:8080/somwthing/image/getimage.html?fileName=1409028722025-7d932ec9-18c4-4d17-a61d-557aa8de7970.jpg
在服务器中,我们创建控制器捕获此请求,例如。
@Controller
@RequestMapping(value = "/image")
public class ImageController {
/**
* Download single file using
* @throws IOException
*/
@RequestMapping(value = "/getimage", method = RequestMethod.GET)
public void getImage(@RequestParam(value="fileName", required=true) String fileName,HttpServletResponse response,HttpServletRequest request) throws IOException {
File f = new File("C:\\tomcat\\downloads\\"+ fileName);
BufferedImage bi = ImageIO.read(f);
OutputStream out = response.getOutputStream();
ImageIO.write(bi, "jpg", out);
out.close();
}
}
请注意,从系统中其他位置读取文件会对安全性造成很大风险。示例将应用程序部署到云时,无法创建类似C:\ tomcat \ downloads
的文件夹答案 1 :(得分:2)
或者您可以使用<mvc:resources>
像
<mvc:resources mapping="/images/**" location="file:/absolute/path/to/image/dir"/>
这可以更容易,更快捷。 有关详细信息,请点击此处 http://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/resources.html