경로 처리에 관한 질문 채택완료
</p>
<p><?php</p>
<p>// /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로 인터넷 주소로 불러와보세요.
답변에 대한 댓글 2개
같은 경로라고 생각을 하니까 문제가 있었네요
역시 기초지식이 없으니 이런 기초적인 개념에서 헤매는군요.
답변주신분들 너무 감사합니다.
댓글을 작성하려면 로그인이 필요합니다.
G5_DATA_PATH."/member_image/$dir/".$mb_id.".gif"; <= 해당 경로는 web url이 아닌, 서버의 절대경로입니다.
이미지를 호출하기 위해서는 위의 G5_DATA_PATH 를 G5_DATA_URL로 변경해 줘야 합니다.
즉 파일의 존재유무를 확인하기 위해서는 G5_DATA_PATH를 사용하고
파일을 불러오기 위해서는 G5_DATA_URL 을 사용해야 합니다.
댓글을 작성하려면 로그인이 필요합니다.
</p>
<p>$image_pr = G5_DATA_PATH."/member_image/$dir/$mb_id.gif";</p>
<p>
댓글을 작성하려면 로그인이 필요합니다.
다음과 같은 방법으로 해 볼 수 있을 것 같습니다.
</p>
<p>$image_pr = "<a href="http://localhost/g5/data/member_image/$dir/".$mb_id.".gif";" target="_blank" rel="noopener noreferrer">http://localhost/g5/data/member_image/$dir/".$mb_id.".gif";</a>
이미지 파일의 경로를 절대 경로로 지정하는 것이 좋습니다
또는 더 일반적인 방법으로는 PHP의 $_SERVER['DOCUMENT_ROOT']를 사용하여 웹 서버의 루트 디렉토리를 동적으로 가져와서 이미지 경로를 구성하는 것이 좋을 수 있습니다.
예를 들면
</p>
<p>$image_pr = $_SERVER['DOCUMENT_ROOT'] . "/g5/data/member_image/$dir/".$mb_id.".gif";
이렇게 하면 상대 경로 문제를 피하고 웹 서버가 어디에 설치되었든 동일한 경로를 참조할 수 있을 것으로 생각합니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인