2014-09-09 2 views
0

У меня есть папка, например «downloads» (полный путь: "C:\tomcat\downloads").Загрузка файла Spring MVC и общий каталог

Это папка, в которой я выкидываю все загруженные файлы. Теперь я хочу, чтобы получить доступ к ним, как это:

<a href ="localhost:8080/exampleproject/downloads/image.jpg"> Clickme </a>

В этой папке «загрузки», может быть что угодно.

Вопрос только в том, что нужно сделать для создания общей папки. На данный момент я могу сохранить отправленные файлы на диск и удалить их. Однако я хочу получить к ним доступ, как указано выше.

Это зависит от конфигурации сервера spring или tomcat? Некоторые примеры ...

ответ

2

при прочтении

<a href ="examplelink"> Clickme </a> 

браузер отправит запрос HTTP, метод GET на ссылку "Examplelink". Итак, на сервере нам нужно создать контроллер, поймать этот запрос 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(); 
} 

}

Пожалуйста, обратите внимание, что прочитать файл из другого места в системе будет сделать много риски относительно sercurity. Пример Когда развертывания вы приложение в облаке, вы не можете создать папку как C: \ Tomcat \ загрузок

Смежные вопросы