레이어 팝업창에서의 첨부파일 출력 문의
본문
안녕하세요.. 스킨 제작중에 잘 안되는 부분이 있어서 이렇게 문의 드립니다.
리스트에서 게시글 클릭시 팝업창을 출력하는 부분에서 첨부한 이미지 파일이 출력이 되지 않아 이렇게 문의 드립니다.
첨부파일의 이미지 경로를 확인해보면 /edu/data/file/ 이렇게 되어 있는데 절대경로로 지정을 해봐도 출력이 안되네요..
고수님들의 조언 및 해결 방법을 도움 부탁드립니다.
즐거운 하루 되세요
view.ajax.php 파일에 다음과 같이 작성했습니다.
<?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
/lib/thumbnail.lib.php 파일에 아래 소스를 참조해서..
파일명을 가져와야 합니다.
$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']);
}
다음처럼 해보면 출력할 변수를 알 수 있을 것입니다
$file = get_file($bo_table, $wr_id); //화일 정보 가져오기
print_r($file);
이 방식보다는 차라리 첨부파일의 절대주소 목룩을 추출하여 여분필드 wr_1 에
이미지1|이미지2|이미지3|.....
이런 식으로 담은 후에 리스트에 날려서 | 을 기준으로 explode 하여 문자열을 파싱하면 되지 않을까요?
리스트에서 레이어팝업은 여러모로 모달로 아이프레임 처리하는 게 편하기도 하구요.
예를 들어서... wr_1 의 문자열이 1.jpg|2.jpg|3.jpg 로 넘어온다면
아래처럼 파싱하면 됩니다.
저는 자바스크립트가 더 편해서 이리 하는데 php 파싱도 원리적으로 똑같습니다.
<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>
$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을 직접 불러오는 방식으로 해결 했습니다.
조언해 주신 모든 분들께 감사드립니다.