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

리스트페이지에서 다운로드

· 14년 전 · 2061 · 1
리스트 페이지에서 업로드된 이미지를 다운로드 받게하려고합니다.
갤러리게시판에 가로로 이미지가 4개입니다.

아무리 게시물을 작성해도 첫번째 게시물만 리스트에서 다운로드가 되고,
두번째 게시물부터 전부다 경로가 비정상적으로 나옵니다.


첫번째 게시물 정상적인 경우 : javascript:file_download('./download.php?bo_table=SmartIcon&wr_id=3&no=0&page=0', '09year_003.png');

두번째 게시물부터 전부다 비정상적인 경우 : javascript:file_download('', '');



관련소스는 아래와 같습니다.
-------------------------------------------------------------------------------------
$ss_name = "ss_view_{$bo_table}_{$list[ $i]['wr_id']}";
if (!get_session($ss_name)); set_session($ss_name, TRUE);
if( $list[ $i][ 'icon_file']);
echo "<tr><td align=left class=lh>";
echo "<a href=\"javascript:file_download('{$list[ $i][file][$i][href]}', '{$list[ $i][file][$i][source]}');\" title='{$list[ $i][file][$i][content]}' CLASS='Download'>";
echo "ICON FILE DOWNLOAD</A></TD></TR>";
--------------------------------------------------------------------------------------




전체적인 소스
--------------------------------------------------------------------------------------
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가

include_once("$board_skin_path/skin.lib.php");

if (!function_exists("imagecopyresampled")) alert("GD 2.0.1 이상 버전이 설치되어 있어야 사용할 수 있는 갤러리 게시판 입니다.");

if (!$board[bo_1]) {
$board[bo_1] = "130";
$sql = " update $g4[board_table] set bo_1 = '$board[bo_1]', bo_1_subj = '목록 가로 픽셀' where bo_table = '$bo_table' ";
sql_query($sql);
}

if (!$board[bo_2]) {
$board[bo_2] = "90";
$sql = " update $g4[board_table] set bo_2 = '$board[bo_2]', bo_2_subj = '목록 세로 픽셀' where bo_table = '$bo_table' ";
sql_query($sql);
}

$mod = $board[bo_gallery_cols];
$td_width = (int)(100 / $mod);

// 선택옵션으로 인해 셀합치기가 가변적으로 변함
$colspan = 5;

if ($is_category) $colspan++;
if ($is_checkbox) $colspan++;
if ($is_good) $colspan++;
if ($is_nogood) $colspan++;

// 제목이 두줄로 표시되는 경우 이 코드를 사용해 보세요.
// <nobr style='display:block; overflow:hidden; width:000px;'>제목</nobr>
?>

<style>
.board_top { clear:both; display:inline-block; width:100%; }

.board_button { clear:both; margin:10px 0 0 0; }

.board_page { clear:both; text-align:center; margin:3px 0 0 0; }
.board_page a:link { color:#777; }

.board_search { text-align:center; margin:10px 0 0 0; }
.board_search .stx { height:21px; border:1px solid #9A9A9A; border-right:1px solid #D8D8D8; border-bottom:1px solid #D8D8D8; }
</style>

<!-- 게시판 목록 시작 -->
<table width="<?=$width?>" align="center" cellpadding="0" cellspacing="0"><tr><td>

<!-- 분류 셀렉트 박스, 게시물 몇건, 관리자화면 링크 -->
<div class="board_top">
<div style="float:left;">
<form name="fcategory" method="get" style="margin:0px;">
<? if ($is_category) { ?>
<select name=sca onchange="location='<?=$category_location?>'+<?=strtolower($g4[charset])=='utf-8' ? "encodeURIComponent(this.value)" : "this.value"?>;">
<option value=''>전체</option>
<?=$category_option?>
</select>
<? } ?>
<?=subject_sort_link('wr_good', $qstr2, 1)?>추천순</a>
|
<?=subject_sort_link('wr_hit', $qstr2, 1)?>조회순</a>
|
<?=subject_sort_link('wr_comment', $qstr2, 1)?>코멘트순</a>
<? if ($is_checkbox) { ?> <input onclick="if (this.checked) all_checked(true); else all_checked(false);" type=checkbox><?}?>
</form>
</div>
<div style="float:right;">
<img src="<?=$board_skin_path?>/img/icon_total.gif" align="absmiddle" border='0'>
<span style="color:#888888; font-weight:bold;">Total <?=number_format($total_count)?></span>
<? if ($rss_href) { ?><a href='<?=$rss_href?>'><img src='<?=$board_skin_path?>/img/btn_rss.gif' border='0' align="absmiddle"></a><?}?>
<? if ($admin_href) { ?><a href="<?=$admin_href?>"><img src="<?=$board_skin_path?>/img/btn_admin.gif" border='0' title="관리자" align="absmiddle"></a><?}?>
</div>
</div>

<form name="fboardlist" method="post">
<input type='hidden' name='bo_table' value='<?=$bo_table?>'>
<input type='hidden' name='sfl' value='<?=$sfl?>'>
<input type='hidden' name='stx' value='<?=$stx?>'>
<input type='hidden' name='spt' value='<?=$spt?>'>
<input type='hidden' name='page' value='<?=$page?>'>
<input type='hidden' name='sw' value=''>

<table width=100% cellpadding=0 cellspacing=0>
<tr><td colspan='<?=$mod?>' height=5></td></tr>
<tr><td colspan='<?=$mod?>' height=2 bgcolor=#B0ADF5></td></tr>
<tr>

<?
for ($i=0; $i<count($list); $i++) {
if ($i && $i%$mod==0)
echo "</tr><tr>";

$style = "";
$subject = "<span $style>{$list[$i][subject]}</span>";


// 이미지정보
$sql_file = " select * from g4_board_file where bo_table='$bo_table' and wr_id='{$list[$i][wr_id]}' and bf_no='0'";
$result_file = @mysql_query($sql_file);
$row_file = @mysql_fetch_array($result_file);

$comment_cnt = "";
if ($list[$i][comment_cnt])
$comment_cnt = " <a href=\"{$list[$i][comment_href]}\"><span class='commentFont'>{$list[$i][comment_cnt]}</span></a>";

$list[$i][name] = preg_replace("/<img /", "<img style='display:none;' ", $list[$i][name]);
$list[$i][name] = preg_replace("/> <span/", "><span", $list[$i][name]);
$list[$i][name] = preg_replace("/class='member'/", "", $list[$i][name]);

echo "<td width='{$td_width}%' valign=top style='word-break:break-all; padding:10px;'>";
echo "<table align=left>";
echo "<tr><td height=5></td></tr>";
echo "<tr><td align=left><div style='float:left; border:1px solid #ccc; background:#fff; padding:4px; font-size:0; line-height:0;'><a href='{$list[$i][href]}'>".makeThumbs($g4[path]."/data/file/$bo_table", $list[$i][file][0][file], $board[bo_1], $board[bo_2], cut_str($list[$i][subject],20))."</a></div></td></tr>";

echo "<tr><td align=left class=lh>";
if ($is_checkbox) echo "<input type=checkbox name=chk_wr_id[] value='{$list[$i][wr_id]}'>";
echo "<a href='{$list[$i][href]}'>$subject</a>{$comment_cnt}";
//echo " " . $list[$i][icon_new];
//echo " " . $list[$i][icon_file];
//echo " " . $list[$i][icon_link];
//echo " " . $list[$i][icon_hot];
//echo " " . $list[$i][icon_secret];
echo "</td></tr>";
echo "<TR HEIGHT='1'><TD BACKGROUND='{$board_skin_path}/img/dotline.gif'></TD></TR>";



$ss_name = "ss_view_{$bo_table}_{$list[ $i]['wr_id']}";
if (!get_session($ss_name)); set_session($ss_name, TRUE);
if( $list[ $i][ 'icon_file']);
echo "<tr><td align=left class=lh>";
echo "<a href=\"javascript:file_download('{$list[ $i][file][$i][href]}', '{$list[ $i][file][$i][source]}');\" title='{$list[ $i][file][$i][content]}' CLASS='Download'>";
echo "ICON FILE DOWNLOAD</A></TD></TR>";


echo "<tr><td align=left class=lh>";
echo "<SPAN STYLE='FONT-FAMILY:Tahoma;FONT-SIZE:10px;COLOR:A7AEB0;'>RESOLUTION :&nbsp;</SPAN> <SPAN STYLE='FONT-FAMILY:Tahoma;FONT-SIZE:10px;COLOR:F88906;'>{$row_file['bf_width']} X {$row_file['bf_height']}</SPAN></td></tr>";
echo "<TR HEIGHT='1'><TD BACKGROUND='{$board_skin_path}/img/dotline.gif'></TD></TR>";


echo "<tr><td align=left class=lh>";
echo "<SPAN STYLE='FONT-FAMILY:Tahoma;FONT-SIZE:10px;COLOR:A7AEB0;'>FILE NAME :&nbsp; </SPAN>";
if ($is_category) echo "<a href='{$list[$i][ca_name_href]}'>[{$list[$i][ca_name]}]</a></TD></TR>";
echo "<TR HEIGHT='1'><TD BACKGROUND='{$board_skin_path}/img/dotline.gif'></TD></TR>";


echo "<tr><td align=left class=lh>";
echo "<SPAN STYLE='FONT-FAMILY:Tahoma;FONT-SIZE:10px;COLOR:A7AEB0;'>CAPACITY :&nbsp; </SPAN> <SPAN STYLE='FONT-FAMILY:Tahoma;FONT-SIZE:10px;COLOR:F88906;'>{$row_file['bf_filesize']} BYTE</SPAN>";
echo "<TR HEIGHT='1'><TD BACKGROUND='{$board_skin_path}/img/dotline.gif'></TD></TR>";


echo "<tr><td align=left style='font-size:11px; color:#888;'>Date.".$list[$i][datetime2]." / Hit.".$list[$i][wr_hit]."</td></tr>";
echo "<TR HEIGHT='1'><TD BACKGROUND='{$board_skin_path}/img/dotline.gif'></TD></TR>";
echo "</table></td>\n";
}

// 나머지 td
$cnt = $i%$mod;
if ($cnt)
for ($i=$cnt; $i<$mod; $i++)
echo "<td width='{$td_width}%'>&nbsp;</td>";
?>
</tr>
<tr><td colspan=<?=$mod?> height=1 bgcolor=#E7E7E7></td></tr>


<? if (count($list) == 0) { echo "<tr><td colspan='$mod' height=100 align=center>게시물이 없습니다.</td></tr>"; } ?>
<tr><td colspan=<?=$mod?> bgcolor=#5C86AD height=1>
</table>
</form>

<div class="board_button">
<div style="float:left;">
<? if ($list_href) { ?>
<a href="<?=$list_href?>"><img src="<?=$board_skin_path?>/img/btn_list.gif" align="absmiddle" border='0'></a>
<? } ?>
<? if ($is_checkbox) { ?>
<a href="javascript:select_delete();"><img src="<?=$board_skin_path?>/img/btn_select_delete.gif" align="absmiddle" border='0'></a>
<a href="javascript:select_copy('copy');"><img src="<?=$board_skin_path?>/img/btn_select_copy.gif" align="absmiddle" border='0'></a>
<a href="javascript:select_copy('move');"><img src="<?=$board_skin_path?>/img/btn_select_move.gif" align="absmiddle" border='0'></a>
<? } ?>
</div>

<div style="float:right;">
<? if ($write_href) { ?><a href="<?=$write_href?>"><img src="<?=$board_skin_path?>/img/btn_write.gif" border='0'></a><? } ?>
</div>
</div>

<!-- 페이지 -->
<div class="board_page">
<? if ($prev_part_href) { echo "<a href='$prev_part_href'><img src='$board_skin_path/img/page_search_prev.gif' border='0' align=absmiddle title='이전검색'></a>"; } ?>
<?
// 기본으로 넘어오는 페이지를 아래와 같이 변환하여 이미지로도 출력할 수 있습니다.
//echo $write_pages;
$write_pages = str_replace("처음", "<img src='$board_skin_path/img/page_begin.gif' border='0' align='absmiddle' title='처음'>", $write_pages);
$write_pages = str_replace("이전", "<img src='$board_skin_path/img/page_prev.gif' border='0' align='absmiddle' title='이전'>", $write_pages);
$write_pages = str_replace("다음", "<img src='$board_skin_path/img/page_next.gif' border='0' align='absmiddle' title='다음'>", $write_pages);
$write_pages = str_replace("맨끝", "<img src='$board_skin_path/img/page_end.gif' border='0' align='absmiddle' title='맨끝'>", $write_pages);
//$write_pages = preg_replace("/<span>([0-9]*)<\/span>/", "$1", $write_pages);
$write_pages = preg_replace("/<b>([0-9]*)<\/b>/", "<b><span style=\"color:#4D6185; font-size:12px; text-decoration:underline;\">$1</span></b>", $write_pages);
?>
<?=$write_pages?>
<? if ($next_part_href) { echo "<a href='$next_part_href'><img src='$board_skin_path/img/page_search_next.gif' border='0' align=absmiddle title='다음검색'></a>"; } ?>
</div>

<!-- 검색 -->
<div class="board_search">
<form name="fsearch" method="get">
<input type="hidden" name="bo_table" value="<?=$bo_table?>">
<input type="hidden" name="sca" value="<?=$sca?>">
<select name="sfl">
<option value="wr_subject">제목</option>
<option value="wr_content">내용</option>
<option value="wr_subject||wr_content">제목+내용</option>
<option value="mb_id,1">회원아이디</option>
<option value="mb_id,0">회원아이디(코)</option>
<option value="wr_name,1">글쓴이</option>
<option value="wr_name,0">글쓴이(코)</option>
</select>
<input name="stx" class="stx" maxlength="15" itemname="검색어" required value='<?=stripslashes($stx)?>'>
<input type="image" src="<?=$board_skin_path?>/img/btn_search.gif" border='0' align="absmiddle">
<input type="radio" name="sop" value="and">and
<input type="radio" name="sop" value="or">or
</form>
</div>

</td></tr></table>


<script language="Javascript">
function file_download(link, file) {
<? if ($board[bo_download_point] < 0) { ?>if (confirm("'"+file+"'다운로드 하시겠습니까?"))<?}?>
document.location.href=link;
}
</script>


<script type="text/javascript">
if ('<?=$sca?>') document.fcategory.sca.value = '<?=$sca?>';
if ('<?=$stx?>') {
document.fsearch.sfl.value = '<?=$sfl?>';

if ('<?=$sop?>' == 'and')
document.fsearch.sop[0].checked = true;

if ('<?=$sop?>' == 'or')
document.fsearch.sop[1].checked = true;
} else {
document.fsearch.sop[0].checked = true;
}
</script>

<? if ($is_checkbox) { ?>
<script type="text/javascript">
function all_checked(sw) {
var f = document.fboardlist;

for (var i=0; i<f.length; i++) {
if (f.elements[i].name == "chk_wr_id[]")
f.elements[i].checked = sw;
}
}

function check_confirm(str) {
var f = document.fboardlist;
var chk_count = 0;

for (var i=0; i<f.length; i++) {
if (f.elements[i].name == "chk_wr_id[]" && f.elements[i].checked)
chk_count++;
}

if (!chk_count) {
alert(str + "할 게시물을 하나 이상 선택하세요.");
return false;
}
return true;
}

// 선택한 게시물 삭제
function select_delete() {
var f = document.fboardlist;

str = "삭제";
if (!check_confirm(str))
return;

if (!confirm("선택한 게시물을 정말 "+str+" 하시겠습니까?\n\n한번 "+str+"한 자료는 복구할 수 없습니다"))
return;

f.action = "./delete_all.php";
f.submit();
}

// 선택한 게시물 복사 및 이동
function select_copy(sw) {
var f = document.fboardlist;

if (sw == "copy")
str = "복사";
else
str = "이동";

if (!check_confirm(str))
return;

var sub_win = window.open("", "move", "left=50, top=50, width=500, height=550, scrollbars=1");

f.sw.value = sw;
f.target = "move";
f.action = "./move.php";
f.submit();
}
</script>
<? } ?>
<!-- 게시판 목록 끝 -->
--------------------------------------------------------------------------------------









정말 애지간하면 질문 안하려고 노력합니다만, 이건 검색도 해보고, 반나절넘게 매달려있습니다.
거진 10시간은 만진것 같은데..이만 들어가기 전에 질문 올리고 갑니다.
긍정적인 답변을 바랍니다. 건강하시고, 행복한 하루되세요..^ ㅡ^;

댓글 작성

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

로그인하기

댓글 1개

답변이 없어서 그냥 간단하게 <a href='<?=$list[$i][file][0][href]?>'>제목</a> 이렇게 해버렸네요..ㅎㅎ =_=

게시글 목록

번호 제목
284508
284499
284492
284490
284484
284481
284478
284476
284474
284472
284470
284458
284457
284454
284453
284447
284446
284444
284441
284440