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

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

웹메이킹 2년 전 조회 1,900

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

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

 

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

 

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

즐거운 하루 되세요

 

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

 

</p>

<p><?php</p>

<p>include_once '../../../common.php';</p>

<p>include_once(G5_LIB_PATH.'/thumbnail.lib.php');</p>

<p> </p>

<p>$wr_id = $_POST['wr_id'];</p>

<p>$bo_table ="map";</p>

<p>$sql = "SELECT * FROM g6_write_".$bo_table." WHERE wr_id = '$wr_id' ";</p>

<p>$row = sql_fetch($sql);</p>

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

<p>?></p>

<p> </p>

<p>            <div class="top_info"></p>

<p>                <div class="landImg swiper-container"></p>

<p>                    <ul class="swiper-wrapper">    </p>

<p>                    <?php</p>

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

<p>    if ($row['file'][$i]['file']) {</p>

<p>        $image = urlencode($row['file'][$i]['file']);</p>

<p>       </p>

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

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

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

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

<p> </p>

<p>            echo '</div>';</p>

<p>            echo '</li>';</p>

<p>        }</p>

<p>    }</p>

<p>}</p>

<p>?></p>

<p> </p>

<p>이하 생략...</p>

<p>

 

 

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

답변 6개

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

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

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

</p>

<p>    $row = get_thumbnail_find_cache($bo_table, $wr_id, 'file');</p>

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

<p> </p>

<p>    if(isset($row['bf_file']) && $row['bf_file']) {</p>

<p>        $filename = $row['bf_file'];</p>

<p>        $filepath = G5_DATA_PATH.'/file/'.$bo_table;</p>

<p>        $alt = get_text($row['bf_content']);</p>

<p>    }</p>

<p>

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

답변에 대한 댓글 1개

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

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

e
2년 전

</p>

<p>$file = get_file($bo_table, $wr_id);</p>

<p>if(sizeof($file) > 0) {</p>

<p>    foreach($file as $key => $arr) {    </p>

<p>        if($arr['file']) {</p>

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

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

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

<p>            echo '</div>';</p>

<p>            echo '</li>';</p>

<p>        }</p>

<p>    }</p>

<p>}</p>

<p>

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

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

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

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

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

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

 

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

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

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

 

</p>

<p><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 + "'>
";

}

</script></p>

<p>

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

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

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

 

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

 

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

 

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

https://sir.kr/g5_skin/53666

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

답변에 대한 댓글 1개

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

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

2년 전

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

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

print_r($file);

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

답변에 대한 댓글 1개

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

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

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

로그인