2014-01-22 4 views
1

코드로 재생하려고합니다. 그러나, 왜 웹 페이지는 절대 모든 로컬 파일에 액세스 할 수 있도록 허용하지 않습니다.내 컴퓨터 폴더에서 JSP 페이지의 이미지 표시

수단은 JSP 파일에서

<img src="c:\ImageFolder\Angelica.jpg"/> 

를 작성하는 경우, 그것은 작동하지 않습니다.

왜 그렇지 않습니까? 내 C 드라이브에서 이미지를 검색하고 웹 페이지에 표시 할 수있는 방법이 있습니까?

+0

는 D 드라이브에서 이미지를 검색하려고 checking..Probably u는 작동 않았다 C 드라이브 –

+0

에서 관리자 권한이 필요하십니까? 우리가 또한 작동하지 않습니다 –

+0

user3040563 @ 알려 주시기 바랍니다. – newbieinjavaversion2

답변

4

img 태그의 src 속성은 소스의 상대 경로 또는 URL을 나타내는 데 사용됩니다. 즉 소스는 웹 컨테이너 내부에 있거나 다른 웹 사이트에서 호스팅 할 수 있습니다. 컨테이너 외부의 파일을 참조 할 수 없으므로 소스에 절대 경로를 사용할 수 없습니다.

해결 방법 웹 컨테이너 외부에서 파일을로드 한 다음 응답에 파일을 쓰거나 스트리밍 할 수있는 서블릿을 만들 수 있습니다. 서블릿에 파일 경로를 제공하고 해당 서블릿이 파일을 사용자에게 제공합니다.

당신이 이름으로 'FileServlet과를'파일을 제공하기위한 서블릿을 생성하고,이 FileServlet과 소요 '경로'를 매개 변수로 파일을 가져 오기 위해, 당신은 IMG 태그는 다음과 같이 보일 것입니다 경우 가정 :

<img scr="FileServet?path=c:\\parentDirectory\file.jpg"> 

가 참조 : 자세한 작업은 File Servlet by BalusC을 참조하십시오.

+0

고마워! :) 지금은 이해. 하지만 문제가 생겼습니다. http://stackoverflow.com/q/21326214/3188711를 참조하십시오. 감사합니다! – newbieinjavaversion2

+0

고마워 ........ – Prashant

1
> :)Try 

<html> 
    <%@page import="java.io.File"%> 
    <%@page import="java.io.IOException"%> 
    <%@page import="java.awt.image.BufferedImage"%> 
    <%@page import="javax.imageio.ImageIO"%> 
    <%@page import="java.io.ByteArrayOutputStream"%> 

    <%@page import="java.math.BigInteger"%> 
    <%@page import="javax.xml.bind.DatatypeConverter"%> 
    <%@page import="java.awt.image.BufferedImage"%> 

    <head> 

    </head> 
    <body> 
    <% 
    //write image 
    try{ 
     String imgName="C:\\PATROL_SITE_IMAGES\\17-Jun-2016\\7588519616\\249_R.jpg"; 
     BufferedImage bImage = ImageIO.read(new File(imgName));//give the path of an image 
     ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
     ImageIO.write(bImage, "jpg", baos); 
     baos.flush(); 
     byte[] imageInByteArray = baos.toByteArray(); 
     baos.close();         
     String b64 = DatatypeConverter.printBase64Binary(imageInByteArray); 
     %> 
     <img class="img-responsive" src="data:image/jpg;base64, <%=b64%>"/>        
     <% 
    }catch(IOException e){ 
     System.out.println("Error: "+e); 
    } 


    %> 


    </body> 
    </body> 
    </html>enter code here 
관련 문제