레이어 팝업창에서의 첨부파일 출력 문의 채택완료

안녕하세요.. 스킨 제작중에 잘 안되는 부분이  있어서 이렇게 문의 드립니다.

리스트에서 게시글 클릭시 팝업창을 출력하는 부분에서 첨부한 이미지 파일이 출력이 되지 않아 이렇게 문의 드립니다.

 

첨부파일의 이미지 경로를 확인해보면 /edu/data/file/ 이렇게 되어 있는데 절대경로로 지정을 해봐도 출력이 안되네요..

 

고수님들의 조언 및 해결 방법을 도움 부탁드립니다.

즐거운 하루 되세요

 

view.ajax.php 파일에 다음과 같이 작성했습니다.

 

Copy
<?php

include_once '../../../common.php';

include_once(G5_LIB_PATH.'/thumbnail.lib.php');

 

$wr_id = $_POST['wr_id'];

$bo_table ="map";

$sql = "SELECT * FROM g6_write_".$bo_table." WHERE wr_id = '$wr_id' ";

$row = sql_fetch($sql);

//$thumb = get_list_thumbnail($bo_table, $row['wr_id'], 768, 502, false, true);

?>

 

            <div class="top_info">

                <div class="landImg swiper-container">

                    <ul class="swiper-wrapper">    

                    <?php

for ($i = 0; $i < 4; $i++) {

    if ($row['file'][$i]['file']) {

        $image = urlencode($row['file'][$i]['file']);

       

        if (preg_match("/\.(gif|jpg|png)$/i", $image) && file_exists(G5_PATH.'/data/file/'.$bo_table.'/'.$image)) {

            echo '<li class="swiper-slide">';

            echo '<div class="img">';

            echo '<img src="'.G5_URL.'/data/file/'.$bo_table.'/'.$image.'" width="462" height="302">';

 

            echo '</div>';

            echo '</li>';

        }

    }

}

?>

 

이하 생략...

 

 

답변 6개

채택된 답변
+20 포인트

/lib/thumbnail.lib.php 파일에 아래 소스를 참조해서..

파일명을 가져와야 합니다.

Copy
$row = get_thumbnail_find_cache($bo_table, $wr_id, 'file');

    $empty_array = array('src'=>'', 'ori'=>'', 'alt'=>'');

 

    if(isset($row['bf_file']) && $row['bf_file']) {

        $filename = $row['bf_file'];

        $filepath = G5_DATA_PATH.'/file/'.$bo_table;

        $alt = get_text($row['bf_content']);

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

답변에 대한 댓글 1개

@eyekiss 안녕하세요 답변 감사합니다.알려주신 방법대로 적용을 해봐도 이미지가 출력이 되지 않는데 혹시 제가 올린 소스에 어떻게 대입을 하면 좋을지 알려주실 수 있을까요?

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

Copy
$file = get_file($bo_table, $wr_id);

if(sizeof($file) > 0) {

    foreach($file as $key => $arr) {    

        if($arr['file']) {

            echo '<li class="swiper-slide">';

            echo '<div class="img">';

            echo '<img src="'.$arr['path'].'/'.$arr['file'].'" width="462" height="302">';

            echo '</div>';

            echo '</li>';

        }

    }

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

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

해결이 되지 않아 sql 쿼리로 g6_board_file테이블에서 bf_file을 직접 불러오는 방식으로 해결 했습니다.

조언해 주신 모든 분들께 감사드립니다.

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

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

 

예를 들어서... wr_1 의 문자열이 1.jpg|2.jpg|3.jpg 로 넘어온다면

아래처럼 파싱하면 됩니다.

저는 자바스크립트가 더 편해서 이리 하는데 php 파싱도 원리적으로 똑같습니다.

 

Copy
<div id="imgDiv"></div>
<script>
imgs = "<?php echo $list[$i]['wr_1']; >";
imgs = imgs.split("|");
for (i of imgs) {
    document.getElementById("imgDiv").innerHTML += "<img src='" + i + "'><br>";
}
</script>
로그인 후 평가할 수 있습니다

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

이 방식보다는 차라리 첨부파일의 절대주소 목룩을 추출하여 여분필드 wr_1 에

 

이미지1|이미지2|이미지3|.....

 

이런 식으로 담은 후에 리스트에 날려서 | 을 기준으로 explode 하여 문자열을 파싱하면 되지 않을까요?

 

리스트에서 레이어팝업은 여러모로 모달로 아이프레임 처리하는 게 편하기도 하구요.

https://sir.kr/g5_skin/53666

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

답변에 대한 댓글 1개

@비타주리 답변감사합니다. 제가 아직 파싱하는 방법을 몰라서요..ㅠㅠ

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

다음처럼 해보면 출력할 변수를 알 수 있을 것입니다

$file = get_file($bo_table, $wr_id); //화일 정보 가져오기

print_r($file);

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

답변에 대한 댓글 1개

@균이 안녕하세요 답변 감사합니다. 파일 정보를 출력해서 변수명을 적용했는데도 게시판에서는 적용이 되는데 위의 코드로는 적용이 되지 않네요..

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

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

로그인
🐛 버그신고