갤러리스킨 만들기 도와주세요 채택완료
망이망소이
7년 전
조회 2,606
하고싶은것은 그누보드 갤러리게시판에서
기본 갤러리(gallery)스킨을 통해
사진 한장씩만 첨부파일로 올리도록 한후,
목록에서 체크박스를 통해 필요한 게시물만 다중체크하여
다운로드 버튼 클릭 - 다운로드 하게끔 하려고 합니다.
아래 소스는 다른사이트에서 가져온 소스인데
그누보드 갤러리게시판이 아니고 따로 디비테이블 만들고 아래처럼 쓰고 있는데요.
실력이 미천하여 아래 소스를 수정하는데 어려움이 있어 도움을 좀 요청드려봅니다.
</p>
<p>################################################################################</p>
<p>//목록에서 체크박스, 다운로드 버튼 부분</p>
<p>################################################################################</p>
<p><div class="certificate_box gallery">
<ul>
<?php for ($i=0; $row=sql_fetch_array($cert); $i++) { ?>
<li><input type="checkbox" name="file<?=$i+1?>" id="ce_file" value="<?php echo $row['certification_image_large'] ?>" /><a href="<?php echo G5_URL ?>/data/certification/<?php echo $row['certification_image_large'] ?>" rel="prettyPhoto[cert]" /><img class="certificate_l" src="<?php echo G5_URL ?>/data/certification/<?php echo $row['certification_image'] ?>" width="204" height="285" alt="<?php echo $row['certification_name'] ?>" /></a>
<p><?php echo $row['c_label'] ?></p>
<div style="clear:both"></div>
</li>
<?php } ?>
</ul>
<div class="submit_box">
<center><input type="button" id="ce_submit" value="다운받기" onclick="suffix=1;downloadAll(this.form);return false" /></center>
</div>
</div></p>
<p> </p>
<p> </p>
<p>################################################################################</p>
<p>//스크립트</p>
<p>################################################################################</p>
<p><script>
var suffix=1;
function downloadAll(oFrm){
var oChk = oFrm.elements["file"+(suffix++)];
if (oChk){
if (oChk.checked){
location.href = "<?php echo G5_URL ?>" + "/download.php?folder=certification&file_name=" + oChk.value;
setTimeout(function(){downloadAll(oFrm)}, 1000);
}
else{
downloadAll(oFrm);
}
}
}</p>
<p></script></p>
<p> </p>
<p> </p>
<p>################################################################################</p>
<p>//download.php</p>
<p>################################################################################</p>
<p><?php
include_once('./_common.php');</p>
<p>// clean the output buffer
ob_end_clean();
@include_once($board_skin_path.'/download.head.skin.php');</p>
<p>// 쿠키에 저장된 ID값과 넘어온 ID값을 비교하여 같지 않을 경우 오류 발생
// 다른곳에서 링크 거는것을 방지하기 위한 코드</p>
<p>$filepath = G5_DATA_PATH.'/'.$folder.'/'.$file_name;
$filepath = addslashes($filepath);
if (!is_file($filepath) || !file_exists($filepath))
alert('파일이 존재하지 않습니다.');</p>
<p>// 사용자 코드 실행
@include_once($board_skin_path.'/download.skin.php');</p>
<p>$g5['title'] = '다운로드 > '.conv_subject($write['wr_subject'], 255);</p>
<p>$original = urlencode($file['bf_source']);</p>
<p>@include_once($board_skin_path.'/download.tail.skin.php');</p>
<p>if(preg_match("/msie/i", $_SERVER['HTTP_USER_AGENT']) && preg_match("/5\.5/", $_SERVER['HTTP_USER_AGENT'])) {
header("content-type: doesn/matter");
header("content-length: ".filesize("$filepath"));
header("content-disposition: attachment; filename=\"$file_name\"");
header("content-transfer-encoding: binary");
} else {
header("content-type: file/unknown");
header("content-length: ".filesize("$filepath"));
header("content-disposition: attachment; filename=\"$file_name\"");
header("content-description: php generated data");
}
header("pragma: no-cache");
header("expires: 0");
flush();</p>
<p>$fp = fopen($filepath, 'rb');</p>
<p>// 4.00 대체
// 서버부하를 줄이려면 print 나 echo 또는 while 문을 이용한 방법보다는 이방법이...
//if (!fpassthru($fp)) {
// fclose($fp);
//}</p>
<p>$download_rate = 10;</p>
<p>while(!feof($fp)) {
//echo fread($fp, 100*1024);
/*
echo fread($fp, 100*1024);
flush();
*/</p>
<p> print fread($fp, round($download_rate * 1024));
flush();
usleep(1000);
}
fclose ($fp);
flush();
?>
</p>
<p>
댓글을 작성하려면 로그인이 필요합니다.
답변 1개
답변을 작성하려면 로그인이 필요합니다.
로그인