첨부파일 링크 어떻게 불러와야 하나요?
관련링크
본문
onclick="javascript:location.replace('{$BBS_URL}/bbs/download.php?bo_table={$bo_table}&wr_id={$list[wr_id]}&no=0', 'fa fa-download');" />";
onclick="javascript:location.replace('http://사이트주소/bbs/download.php?bo_table={$bo_table}&wr_id={$list[wr_id]}&no=0', 'fa fa-download');" />";
사실 이 질문은 얼마전에 의뢰 했던 질문입니다.
열린이글 님께서 저를 위해 게시판을 만들어 주셨는데 제가 사용하고 있는 게시판에 대입하기가 어려워
고민 하던 중에 다시 질문을 올리게 되었습니다.
위 코드는 자바스크립트를 통해 첨부파일0 링크를 불러오기 위한 코드입니다.
첫번째 코드.
리스트에서 첨부파일0 링크 불러오기 시도. 팝업창에 "잘못된 접근입니다."라고 출력됨.
두번째 코드.
역시 첫번째와 동일한 증상 발생.
근데 재밌는건 IE11로 게시판에 뷰페이지에서 마우스 오른쪽 버튼을 활용한 바로가기 복사를 통해 새탭에서 실행했을 때는 정상적으로 다운로드 메뉴(실행, 저장, 취소)가 나옵니다.
저 괄호 공간에 무엇을 넣어야 제대로 작동할까요?
조언 부탁드립니다.
!-->!-->답변 2
download.php 파일을 보시면, "ss_view_<bo_table>_<wr_id>" 세션이 없을 경우에 잘못된 접근 경고가 뜨게 되어있습니다. 기본적으로 view 페이지에서만 (list 페이지가 아니라) 다운로드 링크를 허락한다는 것이죠.
그래서.. 사용하는 list.skin.php 파일에 세션 설정하는 코드를 넣어주셔야 하는데요..
<?php
for($i=0; $i<count($list); $i++) {
set_session('ss_view_'.$bo_table.'_'.$wr_id, TRUE);
// 나머지 목록 출력 코드들...
?>
그런데 이렇게 하면 "ss_view_*" 세션이 엄청 많이 생기겠죠..
그래서..
중간에 세션을 설정해주는 파일을 만들어놓고 그쪽으로 다운로드 링크를 거는것도 괜찮겠습니다.
// filename: download_bridge.php
<?php
include_once "_common.php";
if(!$board || !$wr_id) alert('잘못된 접근');
set_session('ss_view_'.$bo_table.'_'.$wr_id, TRUE);
goto_url(G5_BBS_URL."/download.php?bo_table={$bo_table}&wr_id={$wr_id}&no={$no}");
이런식으로 파일을 만들어 놓구,
list.skin.php 에서는
http://<site_url>/download_bridge.php?bo_table=<bo_table>&wr_id=<wr_id>&no=<no>
위 URL 로 접근하는 거죠.
* 테스트해본것은 아닙니다. 참고만 하세요.
!-->!-->아래 코드로 시도해 보았는데 HTTP500에러가 발생하네요.
혹시 몰라 download.php에 해당 코드를 주석처리하고 다이렉트 링크로 실행하였는데
"파일정보가 존재하지 않습니다"라는 팝업창이 뜨네요.