2016-11-10 6 views
0

Я сохранил некоторые изображения на локальном пути компьютера и сохранил имя файла в db. Теперь я хочу загрузить все изображения с db и показать на html-страницу с помощью java-скрипта и thymemleaf. Браузеру не разрешено загружать локальные ресурсы, поэтому я сделал сервлет весной. Но он не показывает изображение.Загрузка динамического изображения из локального источника

Servlet

@WebServlet("/admin/imgServlet") 
public class AdminImageServlet extends HttpServlet { 

    private static final long serialVersionUID = 1L; 

    @Override 
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { 
     String urlImage = request.getParameter("admin"); 
     response.setContentType("image/jpeg"); 
     ServletOutputStream out; 
     out = response.getOutputStream(); 
     FileInputStream fin = new FileInputStream("C:/Users/Public/Documents/" + urlImage); 

     BufferedInputStream bin = new BufferedInputStream(fin); 
     BufferedOutputStream bout = new BufferedOutputStream(out); 
     int ch = 0; 
     while ((ch = bin.read()) != -1) { 
      bout.write(ch); 
     } 

     bin.close(); 
     fin.close(); 
     bout.close(); 
     out.close(); 
    } 
} 

@Bean 
    public ServletRegistrationBean adminImageServlet() { 
     DispatcherServlet dispatcherServlet = new DispatcherServlet(); 
     AnnotationConfigWebApplicationContext applicationContext = new AnnotationConfigWebApplicationContext(); 
     applicationContext.register(AdminImageServlet.class); 
     dispatcherServlet.setApplicationContext(applicationContext); 
     ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(dispatcherServlet, "/admin/imgServlet"); 
     servletRegistrationBean.setName("imgServlet"); 
     return servletRegistrationBean; 
    } 

Java скрипт для загрузки изображения

'<img src=imgServlet?admin='+articles.bannerImg+' class="img-responsive" />' 

ошибки я получаю imgServlet:1 GET http://localhost/techtalks/admin/imgServlet?admin=pyjc4x0B.jpeg 404 (Not Found)

И я также хочу, чтобы загрузить изображение из местных ресурсов для thymeleaf HTML страницы

Контроллер весныпередаст модель как это, и он передаст изображение в соответствующий файл на страницу html, как это.

<img th:src="@{${localImg}}"/>

ответ

1

Ваш код сервлета работает для меня. Я могу получить изображение успешно.

Я предполагаю, что проблема может быть скорее всего именем файла. Введите имя файла, как показано ниже (т. Е. Без «e» в jpeg).

Он должен работать, если файл присутствует в локальном пути, к которому вы обращаетесь.

pyjc4x0B.jpg 
Смежные вопросы