테스트 사이트 - 개발 중인 베타 버전입니다

경로 처리에 관한 질문 채택완료

타버린나무 2년 전 조회 2,416

</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개

채택된 답변
+20 포인트
2년 전

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

j
jihan?
2년 전
$image_pr = G5_DATA_URL . "/member_image/{$dir}/{$mb_id}.gif";
타버린나무
2년 전
파일 작업하는거랑 불러오는거랑은 다르군요.
같은 경로라고 생각을 하니까 문제가 있었네요
역시 기초지식이 없으니 이런 기초적인 개념에서 헤매는군요.
답변주신분들 너무 감사합니다.

댓글을 작성하려면 로그인이 필요합니다.

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";

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

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인