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

file 정보 저장했다가 꺼낼려는데 출력이 안됩니다..

김시윤 4년 전 조회 5,311

$bicycle_file = get_file("superintend", $result['wr_id']);

$bm_bicycle_image = apms_pack($bicycle_file[0]);

이런식으로 다른 게시판의 첫번째 파일 정보를 write_update.skin에서 저장하고 write딴에서 수정할때 이 파일정보를

$bicycle_image = apms_unpack($write['bm_bicycle_image']);

이런식으로 뽑아내고

<?php echo $bicycle_image['view']; ?> 

이렇게 출력을 할려는데 이미지가 안나옵니다ㅠㅠ 고수분들 도와주세요.. 참고로

<?php print_r2($bicycle_image); ?>

이런식으로 하면 view딴에서 뜨는 file 정보랑 똑같이 뜹니다

<?php print_r2($view['file'][0]); ?>

이랑 뜨는 정보는 똑같아요.. (한글자도 안틀리고 100%)

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

답변 4개

4년 전

여러분 찾았습니다. 토씨 하나 안틀린건 아니고

</p>

<pre>
<code>$bicycle_file = get_file("superintend", $result['wr_id']);
$bm_bicycle_image = apms_pack($bicycle_file[0]);</code></pre>

<p>

여기서 문제가 있어서 토씨 하나 정돈 틀렸네요ㅋㅋㅋㅋ get_file 함수가

</p>

<p>function get_file($bo_table, $wr_id)

{

    global $g5, $qstr;</p>

<p>    $file['count'] = 0;

    $sql = " select * from {$g5['board_file_table']} where bo_table = '$bo_table' and wr_id = '$wr_id' order by bf_no ";

    $result = sql_query($sql);

    while ($row = sql_fetch_array($result))

    {

        $no = $row['bf_no'];

        $bf_content = $row['bf_content'] ? html_purifier($row['bf_content']) : '';

        $file[$no]['href'] = G5_BBS_URL."/download.php?bo_table=$bo_table&wr_id=$wr_id&no=$no" . $qstr;

        $file[$no]['download'] = $row['bf_download'];

        // 4.00.11 - 파일 path 추가

        $file[$no]['path'] = G5_DATA_URL.'/file/'.$bo_table;

        $file[$no]['size'] = get_filesize($row['bf_filesize']);

        $file[$no]['datetime'] = $row['bf_datetime'];

        $file[$no]['source'] = addslashes($row['bf_source']);

        $file[$no]['bf_content'] = $bf_content;

        $file[$no]['content'] = get_text($bf_content);

        //$file[$no]['view'] = view_file_link($row['bf_file'], $file[$no]['content']);

        $file[$no]['view'] = view_file_link($row['bf_file'], $row['bf_width'], $row['bf_height'], $file[$no]['content']);

        $file[$no]['file'] = $row['bf_file'];

        $file[$no]['image_width'] = $row['bf_width'] ? $row['bf_width'] : 640;

        $file[$no]['image_height'] = $row['bf_height'] ? $row['bf_height'] : 480;

        $file[$no]['image_type'] = $row['bf_type'];

        $file['count']++;

    }</p>

<p>    return $file;

}</p>

<p>

이렇게 생겼는데 ['view']를 넣는 함수인 view_file_link가 문제였습니다

</p>

<p>function view_file_link($file, $width, $height, $content='')

{

    global $config, $board;

    global $g5;

    static $ids;</p>

<p>    if (!$file) return;</p>

<p>    $ids++;</p>

<p>    // 파일의 폭이 게시판설정의 이미지폭 보다 크다면 게시판설정 폭으로 맞추고 비율에 따라 높이를 계산

    /*

    if ($width > $board['bo_image_width'] && $board['bo_image_width'])

    {

        $rate = $board['bo_image_width'] / $width;

        $width = $board['bo_image_width'];

        $height = (int)($height * $rate);

    }</p>

<p>    // 폭이 있는 경우 폭과 높이의 속성을 주고, 없으면 자동 계산되도록 코드를 만들지 않는다.

    if ($width)

        $attr = ' width="'.$width.'" height="'.$height.'" ';

    else

        $attr = '';

    */</p>

<p>    if (preg_match("/\.({$config['cf_image_extension']})$/i", $file)) {

        //$img = '<a href="'.G5_BBS_URL.'/view_image.php?bo_table='.$board['bo_table'].'&fn='.urlencode($file).'" target="_blank" class="view_image">';

        $img = '<img src="'.G5_DATA_URL.'/file/'.$board['bo_table'].'/'.urlencode($file).'" alt="'.$content.'">';

        //$img .= '</a>';</p>

<p>        return $img;

    }

}</p>

<p>

이게 view_file_link 함수인데 이미지 src 넣는 과정에서 $board['bo_table']가 문제였습니다

저는 다른 테이블에 있는 파일을 가져오고 싶은데 src에 계속 현재 위치해 있는 테이블의 아이디가 src로 들어간 거였죠(그래서 이미지를 못 불러왔었네요..ㅠㅠㅠㅠ)

어쨌든 이 부분은 extend/user.config.php에 따로 함수 복사하고 이름 좀 바꾸고 이미지 src에 현재의 테이블 아이디가 아닌 매개변수로 들어간 테이블 아이디가 들어가도록 제 맛대로 바꿨습니다^^

궁금하실분이 있을거 같아서 user.config 코드도 올릴게요 감사합니다ㅠㅠ

</p>

<p>// 게시글에 첨부된 파일을 얻는다. (배열로 반환)

function get_file_info($bo_table, $wr_id)

{

    global $g5, $qstr;</p>

<p>    $file['count'] = 0;

    $sql = " select * from {$g5['board_file_table']} where bo_table = '$bo_table' and wr_id = '$wr_id' order by bf_no ";

    $result = sql_query($sql);

    while ($row = sql_fetch_array($result))

    {

        $no = $row['bf_no'];

        $bf_content = $row['bf_content'] ? html_purifier($row['bf_content']) : '';

        $file[$no]['href'] = G5_BBS_URL."/download.php?bo_table=$bo_table&wr_id=$wr_id&no=$no" . $qstr;

        $file[$no]['download'] = $row['bf_download'];

        // 4.00.11 - 파일 path 추가

        $file[$no]['path'] = G5_DATA_URL.'/file/'.$bo_table;

        $file[$no]['size'] = get_filesize($row['bf_filesize']);

        $file[$no]['datetime'] = $row['bf_datetime'];

        $file[$no]['source'] = addslashes($row['bf_source']);

        $file[$no]['bf_content'] = $bf_content;

        $file[$no]['content'] = get_text($bf_content);

        //$file[$no]['view'] = view_file_link($row['bf_file'], $file[$no]['content']);

        $file[$no]['view'] = get_view_file_link($row['bf_file'], $row['bf_width'], $row['bf_height'], $file[$no]['content'], $bo_table);

        $file[$no]['file'] = $row['bf_file'];

        $file[$no]['image_width'] = $row['bf_width'] ? $row['bf_width'] : 640;

        $file[$no]['image_height'] = $row['bf_height'] ? $row['bf_height'] : 480;

        $file[$no]['image_type'] = $row['bf_type'];

        $file['count']++;

    }</p>

<p>    return $file;

}</p>

<p>// 파일을 보이게 하는 링크 (이미지, 플래쉬, 동영상)

function get_view_file_link($file, $width, $height, $content='', $bo_table)

{

    global $config, $board;

    global $g5;

    static $ids;</p>

<p>    if (!$file) return;</p>

<p>    $ids++;</p>

<p>    // 파일의 폭이 게시판설정의 이미지폭 보다 크다면 게시판설정 폭으로 맞추고 비율에 따라 높이를 계산

    /*

    if ($width > $board['bo_image_width'] && $board['bo_image_width'])

    {

        $rate = $board['bo_image_width'] / $width;

        $width = $board['bo_image_width'];

        $height = (int)($height * $rate);

    }</p>

<p>    // 폭이 있는 경우 폭과 높이의 속성을 주고, 없으면 자동 계산되도록 코드를 만들지 않는다.

    if ($width)

        $attr = ' width="'.$width.'" height="'.$height.'" ';

    else

        $attr = '';

    */</p>

<p>    if (preg_match("/\.({$config['cf_image_extension']})$/i", $file)) {

        //$img = '<a href="'.G5_BBS_URL.'/view_image.php?bo_table='.$board['bo_table'].'&fn='.urlencode($file).'" target="_blank" class="view_image">';

        $img = '<img src="'.G5_DATA_URL.'/file/'.$bo_table.'/'.urlencode($file).'" alt="'.$content.'">';

        //$img .= '</a>';</p>

<p>        return $img;

    }

}</p>

<p>

view_file_link 이름을 get_view_file_link로 바꾸고 매개변수 하나 추가해서 get_file_info에 들어온 매개변수를 집어넣게 해놨습니다. 그리고 이미지 src에 $board['bo_table']이 아닌 $bo_table가 들어가게 해놨구요. 정상 작동하네요^^

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

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

플라이
4년 전

$bicycle_image 여기에 뜨는 배열값을 확인해 보셨을까요?

 

배열값이 $view['file'][0] 이거의 값과 동일하다면 $view['file'][0] 3차 배열은 안되니까 뜨는게 정상인데요

 

배열값을 확인해 볼수 없어서 정확한 답변이 어렵네요

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

답변에 대한 댓글 1개

김시윤
4년 전
네 위에도 말씀 드렸다시피 $view['file'][0] 하고 $bicycle_image 토씨 하나 안틀리고 정확히 같습니다. db에는 제대로 들어간 것 같은데요..근데 $view['file'][0]['view'] 이렇게 하면 이미지가 뜨는데 $bicycle_image['view']라고 하면 이미지가 안뜨네요..ㅠㅠㅠ

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

4년 전

view딴에서

<?php print_r2($view['file'][0]); ?>

해보시면 파일 0번째 인덱스에 있는데 파일정보(src, width, height, size... 등등)들이 뜹니다. 이런것들이 배열로 저장 되어있는데

<?php echo $bicycle_image; ?>

이렇게 하면 array라고 뜰겁니다. 제가 원하는건 이미지를 출력하고 싶은데 view딴에서는 이미지를

<?php echo $view['file'][0]['view']; ?>

이렇게 하면 떠서 마찬가지로

<?php echo $bicycle_image['view']; ?>

이라고 하면 뜰 줄 알았는데 안뜨는게 문젭니다..ㅠㅠㅠ

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

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

4년 전
  하셔야 하는거 아니에요?
로그인 후 평가할 수 있습니다

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

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

로그인