2017-12-13 5 views
2

나는이 작은 문제를 겪고 있는데, 내 콘솔에 그림을로드하는 것이 불가능하다는 것을 알았습니다. 문제를 해결하는 방법을 모르겠습니다.jsp에서 이미지를로드 할 수 없습니까?

데이터베이스에서 이미지 이름을 내 컨트롤러의 문자열 (예 : 'image.jpg'과 같은 이름)로 가져오고 내 이미지 '폴더'에 저장됩니다.

<c:if test="${ !(post.cover == 'empty')}"> 
    <div class="imgPub"> 
    <img src="Assets/images/${post.cover }"> 
    </div> 
</c:if> 

내 관리자에서 내가 정확히 기록 된 전체 SRC를 볼 수 있지만,이 이미지를로드하는 것은 불가능 말 옆에 메시지 :

여기 내 JSP 파일입니다.

도움을 주시면 감사하겠습니다.

+3

직접 URL을 통해 이미지를로드하십시오. 문제는 Jsp와 관련이 없습니다. 이미지 태그를 출력한다고 말하면 문제는 사용하는 URL에서 이미지를로드 할 수 없다는 것입니다. –

+2

죄송합니다! 내 이미지를로드 URL을 통해? 나는 그 말을 이해하지 못했고, 그것이 나에게서 어리석은 소리가 나면 미안합니다. – TaouBen

답변

1

HttpServlet이 작업을 수행합니다.

사용 :

youraddress.xxx/images/filename.png이 @WebServlet ("/ 이미지/*")

그것은 자동으로 폴더에 이르게됩니다 중요

경로에 정의되어 있고 이름을 기반으로 이미지를 검색합니다.

import javax.servlet.ServletException; 
import javax.servlet.annotation.WebServlet; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import java.io.File; 
import java.io.IOException; 
import java.nio.file.Files; 

@WebServlet("/images/*") 
public class ImageServlet extends HttpServlet { 

public static final String PATH = "C:/" 
/* 
linux 
public static final String PATH = "/home/images/" 
*/ 

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     String filename = request.getPathInfo().substring(1); 
     File file = new File(PATH,filename); 
     response.setHeader("Content-Type", getServletContext().getMimeType(filename)); 
     response.setHeader("Content-Length",String.valueOf(file.length())); 
     response.setHeader("Content-Disposition","inline; filename=\""+filename +"\""); 
     Files.copy(file.toPath(),response.getOutputStream()); 
    } 

} 
관련 문제