2012-06-07 5 views
0

서버에 업로드되고 저장된 이미지가 있습니다. 이제이 URL을 중심으로 이미지 위젯을 만들고 싶습니다. 내 업로드 방법은 이미지의 상대 경로를 반환합니다 (예 : uploads/image.jpg).런타임 이후에 생성 된 이미지의 URL. GWT

이 이미지에 액세스 할 수 있도록 URL을 생성하려고합니다. 이 방법은 개발 모드에서 작동합니다.

String imagePath = uploads/image.jpg; 
Image image = new Image(GWT.getHostPageBaseURL() + imagePath.replaceAll('//', '\')); 

replaceAll은 Windows 파일 분리 기호를 URL 구분 기호로 변환하는 데 사용됩니다. 이렇게하면 내 부두 서버에 배포 할 때 http : // localhost : 8080/card-designer/uploads/image.jpg의 이미지가 생성됩니다. 이미지가 표시되지 않습니다.

동적으로 생성 된 이미지에 액세스 할 수있는 URL을 만들 수 있습니까? 어떤 도움이라도 대단히 감사 할 것입니다.

답변

0

내 업로드 방법은 무엇

상대 이미지의 상대 경로를 반환? 디스크의 어디에 파일이 저장되어 있습니까? 이것은 부두를 구성해야 할 것처럼 보입니다. 부두에 이미지에 해당하는 URL이 있어야하며이를 제공해야합니다.

Jetty 설명서의 Serving Static Content을 참조하십시오.

쉬운 솔루션은 jetty.xml의

<Configure class="org.mortbay.jetty.handler.ContextHandler"> 
    <Set name="contextPath">/upload</Set> 
    <Set name="resourceBase"><SystemProperty name="jetty.home" default="."/>/upload</Set> 
    <Call name="addHandler"> 
    <Arg> 
     <New class="org.mortbay.jetty.handler.ResourceHandler"/> 
    </Arg> 
    </Call> 
</Configure> 

당신은 디스크에 업로드 디렉토리 경로와 함께 "resourceBase"매개 변수를 교체해야이 뭔가를 추가하는 것입니다.

그렇지 않으면 이미지를 가져 와서/upload /에 매핑 할 자신의 서블릿을 만듭니다.

임베디드 부두가 기본적으로 정적 컨텐츠와 같은 알려지지 않은 URL을 제공하기 때문에 dev 모드에서 작동하는 것 같습니다.

+0

늦게 회신하여 죄송합니다. 며칠 동안 휴가를 드렸습니다. 서블릿을 기준으로합니다. 이 질문의 범위를 벗어나는 추가 처리에 사용되므로 서버 측 코드가 나중에 이미지를 찾을 수 있도록하십시오. 당신이 제안한 것처럼이 문제를 해결하기 위해 HTTP 응답으로 이미지 데이터를 스트리밍하는 새로운 이미지 서빙 서블릿을 생성했습니다. 그것은 완벽하게 작동합니다! 당신의 도움을 주셔서 감사합니다. – DarthGazak

관련 문제