경로 처리에 관한 질문

경로 처리에 관한 질문

QA

경로 처리에 관한 질문

본문


<?php
// /test/t.php 
$dir = substr($mb_id, 0, 2);
$image_pr = G5_DATA_PATH."/member_image/$dir/".$mb_id.".gif";
if( is_file( $image_pr )) { echo '존재';?>
        <img src="<?=$image_pr?>" width="100px" height="100px" style="border:1px solid #333333;">
<?php } else {  echo '없슴'; ?>
        <img src="./default.png" width="100px" height="100px" style="border:1px solid #333333;">
<?php } ?>

 

위 코드에서 파일이 존재하는데 이미지는 나오질 않네요

  $image_pr = G5_DATA_PATH."/member_image/$dir/".$mb_id.".gif";  // 결과 > D:/xampp/htdocs/g5/data/member_image/13/130000.gif

이 코드를 

  $image_pr = "../g5/data/member_image/$dir/".$mb_id.".gif";

라고 변경하면 나옵니다.

 

직접 태그를 써봐도

<img src="D:/xampp/htdocs/g5/data/member_image/13/130000.gif">  안나옵니다.

 

침고로

   echo '현재파일: '. __FILE__;

해보면 t.php 의 위치는 

   D:\xampp\htdocs\test\t.php

입니다.

 

 

이 질문에 댓글 쓰기 :

답변 4

경로를 해서 앞에 풀 경로가 와서 그럴거 같네요 파일 체크를 지금 처럼 하고 이미지 불러올때는 G5_DATA_URL로 인터넷 주소로 불러와보세요.

파일 작업하는거랑 불러오는거랑은 다르군요.
같은 경로라고 생각을 하니까 문제가 있었네요
역시 기초지식이 없으니 이런 기초적인 개념에서 헤매는군요.
답변주신분들 너무 감사합니다.

다음과 같은 방법으로 해 볼 수 있을 것 같습니다.

 


$image_pr = "http://localhost/g5/data/member_image/$dir/".$mb_id.".gif";

이미지 파일의 경로를 절대 경로로 지정하는 것이 좋습니다

 

또는 더 일반적인 방법으로는 PHP의 $_SERVER['DOCUMENT_ROOT']를 사용하여 웹 서버의 루트 디렉토리를 동적으로 가져와서 이미지 경로를 구성하는 것이 좋을 수 있습니다.

예를 들면


$image_pr = $_SERVER['DOCUMENT_ROOT'] . "/g5/data/member_image/$dir/".$mb_id.".gif";

이렇게 하면 상대 경로 문제를 피하고 웹 서버가 어디에 설치되었든 동일한 경로를 참조할 수 있을 것으로 생각합니다

 G5_DATA_PATH."/member_image/$dir/".$mb_id.".gif"; <= 해당 경로는 web url이 아닌, 서버의 절대경로입니다.

이미지를 호출하기 위해서는 위의 G5_DATA_PATH 를 G5_DATA_URL로 변경해 줘야 합니다.

즉 파일의 존재유무를 확인하기 위해서는 G5_DATA_PATH를 사용하고

파일을 불러오기 위해서는 G5_DATA_URL 을 사용해야 합니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 146
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT