닉넴이용
251
2021-06-04 16:29:25
13
121

웹에서 linux 서버에 있는 파일을 불러오려고 하는데 이런 오류는 접근 권한 오류인가요?


혹시 파일 경로가 웹에서는 접근을 못하는 경로인가요?

/home/dev에 넣어놔도 저런 오류가 떠서 혹시나 하는 마음에

tomcat 폴더에 넣은 건데...

0
  • 답변 13

  • 상저씨
    189
    2021-06-04 16:37:45

    브라우저 주소창이나 img url에 해당경로를 바로 입력을 하신건가요? 


    /usr/~ 의 경로는 서버내부경로라 접근할 수 없습니다.


    tomcat이 뜨면 아마 webapps 부터 http://domain/ 경로로 잡아줄텐데

    http://domain/dev/cat.jpeg 로 요청해보실래요?

  • 닉넴이용
    251
    2021-06-04 16:44:40

    아직 도메인 설정은 안 한 상태입니다!

    근데 ip주소:8080/dev/cat.jpeg 로 하니까 되네요 ㅎㅎ 감사합니다.

    그럼 제가 profile 설정 시에 rootPath를 /usr/local/tomcat/webapps/dev/로 설정해두었는데

    파일 업로드는 이렇게 했는데

    thumb.transferTo(new File(rootPath + fileName));

    파일 받아올 때는 rootPath 말고 /dev/로 지정해야겠네요

    이렇게 하는 게 맞죠?

  • 상저씨
    189
    2021-06-04 16:50:46

    말씀하신것처럼

    스프링 내부에서 경로는 서버경로 ex) /usr/~~ /dev/~~  으로 잡아주는것이 맞습니다.



  • 닉넴이용
    251
    2021-06-04 16:52:20

    감사합니다!

  • 상저씨
    189
    2021-06-04 16:53:54

    참고로 img url에 경로 작성하실 때 

    contextPath 부터

    <img src="/cat.jpeg">


    이렇게 상대경로로 작성하시는게 편합니다

  • 닉넴이용
    251
    2021-06-04 16:57:16

    혹시 이런 경우는 어떻게 해야할까요...? 로컬에서 옮긴 파일이라서 한글명으로 잘 들어갔긴한데  불러오려고 하는데 linux 내의 인코딩은 utf-8인데 깨져서요...


  • 닉넴이용
    251
    2021-06-04 16:58:43

    <img src="/dev/${recipe.recipeThumbnail }" alt="소개 이미지">

    이렇게 했는데 이게 상대경로 맞나요..?

  • 닉넴이용
    251
    2021-06-04 17:06:26

    한글명 들어간 파일 빼고는 다 출력 잘 돼요!! 감사합니다!!! 앞으로는 파일명 생성 원본 파일명 안 들어가게해서 그냥 한글명 들어간 파일은 다 지우고 데이터 다시 넣어야 될 것 같아요  감사합니다!

  • 상저씨
    189
    2021-06-04 17:06:41 작성 2021-06-04 17:10:06 수정됨

    tomcat의 server.xml Connector 태그 attribute에 URIEncoding="utf-8" 을 추가해보시겠어요?



    <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="utf-8"/>


    상대경로는 contextPath 부터 라고 알고있습니다.


    /dev 가 contextPath 로 되어있으면

    <img src="/${recipe.recipeThumbnail }" alt="소개 이미지"> 이고


    / 가 contextPath이면
    <img src="/dev/${recipe.recipeThumbnail }" alt="소개 이미지"> 이겠네요

  • 닉넴이용
    251
    2021-06-04 17:26:23

    감사합니다 server.xml 에 인코딩은 이미 설정된 부분인데 왜 안 되는지 모르겠네요ㅠ

  • 상저씨
    189
    2021-06-04 17:30:52

    닉넴이용 


    https://wlsufld.tistory.com/51  참고해보세여


    이게 아니면 잘모르겠네요 ㅎㅎ;

  • 닉넴이용
    251
    2021-06-04 18:11:56

    /etc/sysconfig/i18n 에서 LANG=ko_KR.UTF-8

    로 변경하고 해결했습니다!

  • 닉넴이용
    251
    2021-06-04 18:32:45

    아니...재부팅하니까 왜 다시 안 되죠.....

  • 로그인을 하시면 답변을 등록할 수 있습니다.