2012-07-26 3 views
1

사용자가 많은 이미지를 업로드합니다.자바 스프링 프레임 워크에서 이미지를 업로드 할 폴더를 유지할 곳

  1. 어디에 이러한 폴더를 보관해야합니다.
  2. 웹 응용 프로그램의 이미지에 어떻게 액세스합니까?
  3. 폴더가 웹 컨텐츠/리소스에 있어야합니까?

업데이트를 둘러보고 후 "외부 폴더 경로"

파일 파일 = 새로운 파일 (업로드 동안

  1. 는 웹 애플리케이션 Java EE - Best way to get real path to uploaded files?
  2. 외부에 업로드 폴더를 만들기로 결정 + 파일 이름);

  3. 업로드 된 이미지에 액세스하려면 서블릿-context.xml에

    < MVC 외부 폴더에 매핑을 생성 : 자원 매핑 = "/ 이미지/**"위치 = "파일 : /// D :/라훌/eclipse_java/이미지/"/>

D에 이제 로컬 호스트/응용 프로그램/이미지지도 :/폴더/이미지

등록 정보 파일의 경로를 분리 SpEL을 및 구성 속성을 사용하여 시도해야 .

+0

스택 오버플로에 오신 것을 환영합니다! [귀하의 질문을 연구하십시오] (http://stackoverflow.com/questions/how-to-ask). [이미 시도한 것] (http://whathaveyoutried.com/)이 있으면 질문에 추가하십시오. 아니라면 질문을 먼저 연구하고 시도한 다음 다시 방문하십시오. –

답변

1

이미지가 로고, 페이지 헤더 이미지 및 기타 사용자 관련 사항과 같이 작은 크기 인 경우 해당 이미지를 DB에 저장하고 이미지를 캐싱 할 수 있습니다. 이미지 관련 테이블에 변경 사항이있을 때마다 캐시를 ​​자동으로 다시 채우는 스크립트를 작성하십시오. 나는 많은 애플 리케이션에서이 시나리오를 가지고있다.

+0

안녕하세요, 답장을 보내 주셔서 감사합니다. 그것의 미술관 웹 사이트. 업로드 된 이미지는 다소 큰 크기입니다. 너는 무엇을 제안 하겠는가? – Rahul

+0

@Kaipa : 로고와 페이지 헤더 이미지를 db에 저장하면 어떤 이점이 있습니까? 우리는 자주 사용되는 DB에 저장하지 않습니다. – xyz

+0

데이터베이스 정보를 사용하면 배포, 서버 마이그레이션 등에서 파일에 대해 걱정할 필요가 없습니다. – Jayy

0

DB를 사용하여 이미지를 바이트 단위로 저장합니다.

<form id="uploadImageForm" name="uploadImageForm" method="post" enctype="multipart/form-data" action="uploadImage.html"> 
    <input id="uploadImage" name="uploadImage" type="file"> 
</form> 

이미지를 바이트 단위로 저장하는 코드를 컨트롤러에 씁니다.

2

Tomcat을 사용하는 경우, 당신은 당신의 JSP 어디서나 이미지를 다음에 액세스 할 수 있습니다 server.xml에

<Context docBase="C:/temp" path="/yourapp/resources/images" /> 

<Engine defaultHost="localhost" name="Catalina"> 

내부에 태그를 추가합니다. 예 : 응용 프로그램의 속성으로/온도 및 컨트롤러 내부에 사용 :
<img class="fs-sp1-image" src="<c:url value="/resources/images/item_1.png/>"> 

당신은 새로운 이미지를 업로드, 설정 경로 C로이 폴더 안에 어떤 처리를 수행 할 경우

.

이 두 가지 방법으로 서버에서

  • 업로드 한 이미지가 삭제되지 않는 기동합니다에 도움이됩니다.
  • 사용자가 업로드 한 이미지 폴더는 시간이 지남에 따라 매우 무거워 짐에 따라 은 배포 된 코드에서 폴더를 지우는 것이 가장 좋습니다.
+0

안녕하세요. 그러나 나는 여전히 스프링 애플리케이션 내에서 위치를 정의하는 것을 선호 할 것이다. 는 그렇게 할 수있게 해줍니다. 어쨌든 고마워. – Rahul

관련 문제