게시글 엑셀다운 후 원본파일명 또는 임의 파일명으로 다운받는 방법

게시글 엑셀다운 후 원본파일명 또는 임의 파일명으로 다운받는 방법

QA

게시글 엑셀다운 후 원본파일명 또는 임의 파일명으로 다운받는 방법

답변 3

본문

아래 게시판 글 엑셀파일 다운 소스입니다.

게시글에 등록된 첨부파일 경로(url)도 추가하고 싶어서
질문 올렸는데 정말 감사하게도, myzone님께서 도움을 주셔서
파일경로까지는 추가해서 현재 업로드한 파일을 다운로드까지는 됩니다.

 

다만 엑셀에서 해당 첨부파일 url을 클릭해서 파일을 다운받을 때
원본 파일명이 아닌 "암호화 파일명" 그대로 다운이 됩니다.

 

다운받은 파일명 : 4134e25e31381b6b6666fb3262fb0a11_3lNYPzu0_d6bd3b365bb2d32bcc13603a484c4f809fd4b110

 

게시판 view.php 처럼 파일명 url 클릭하면, 암호화 형태가 아닌 원본 파일명 형태로 받을 수 있을까요?

 

혹시 안된다면.. $row['wr_name'] 같은걸로 임의로 바꿔서라도 다운받을 수 있으면 좋겠습니다.


알기쉽게 코드예제 부탁드립니다.
고수님들 답변 꼭 부탁드립니다. ㅜㅜ

도움을 주시는 분들께 진심으로 감사드립니다.


감사합니다.

 

-------------------------------------------------------

 


<?php
include_once('_common.php');
echo '<meta charset="utf-8">';
$sql = " select 
        bo_subject
        from g5_board A
        where 1 = 1 
        and bo_table = '{$bo_table}'
        ";
$title = sql_fetch($sql);
$sql = " select 
        A.*
        from g5_write_{$bo_table} A
        where 1 = 1 
        order by wr_datetime desc
        ";
$result = sql_query($sql);
header("Content-Type: application/vnd.ms-excel"); 
header("Content-Type: application/x-msexcel"); 
header("Content-Disposition: attachment; filename={$bo_table}.xls");
header("Content-Description: PHP4 Generated Data" ); 
header("Content-charset=utf-8");
?>
<html>
<head>
<style>
.sty { font-family:굴림; font-size:12px;}
.sty0 { font-family:굴림; font-size:12px; text-align:center;}
.sty1 {mso-number-format:"\@";font-family:굴림; font-size:12px}
.sty2 {font-family:굴림; font-size:12px}
.sty3 {font-family:굴림; font-size:12px; color: #ff0000}
.title {font-family:굴림; font-size:12px; font-weight:600}
.title_s {font-family:굴림; font-size:16px}
</style>
</head>
<body bgcolor="#FFFFFF">
<table border="1" style="table-layout:fixed">
<tr>
    <td colspan="17" class="title"><?php echo $title['bo_subject'];?></td>
</tr>
<tr align="center">    
    <td bgcolor="#CCFFCC">순번</td>
    <td bgcolor="#CCFFCC">등록일자</td>
    <td bgcolor="#CCFFCC">등록자</td>
    <td bgcolor="#CCFFCC">제목</td>
    <td bgcolor="#CCFFCC">내용</td>
    <td bgcolor="#CCFFCC">이메일</td>
    <td bgcolor="#CCFFCC">등록아이피</td>
    <td bgcolor="#CCFFCC">추가필드1</td>
    <td bgcolor="#CCFFCC">추가필드2</td>
    <td bgcolor="#CCFFCC">추가필드3</td>
    <td bgcolor="#CCFFCC">추가필드4</td>
    <td bgcolor="#CCFFCC">추가필드5</td>
    <td bgcolor="#CCFFCC">추가필드6</td>
    <td bgcolor="#CCFFCC">추가필드7</td>
    <td bgcolor="#CCFFCC">추가필드8</td>
    <td bgcolor="#CCFFCC">추가필드9</td>
    <td bgcolor="#CCFFCC">추가필드10</td>
</tr>
<?php 
for ($i=0; $row=sql_fetch_array($result); $i++) {
    //myzone 님의 답변
    $file = get_file($bo_table, $row['wr_id']);
    for($k=0; $k< $file['count']; $k++){
        $fileurl = $file[$k]['path']."/".$file[$k]['file'];
        echo '<a href="'.$fileurl.'">다운로드</a>';
    }
?>
    <tr>
        <td class="sty1"><?php echo ($i + 1);?></td>
        <td class="sty1"><?php echo substr($row['wr_datetime'], 0, 11);?></td>
        <td class="sty1"><?php echo $row['wr_name'] . ' (' . $row['mb_id'] . ')' ;?></td>
        <td class="sty1"><?php echo $row['wr_subject'];?></td>
        <td class="sty1"><?php echo strip_tags($row['wr_content']);?></td>
        <td class="sty1"><?php echo $row['wr_email'];?></td>
        <td class="sty1"><?php echo $row['wr_ip'];?></td>
        <td class="sty1"><?php echo $row['wr_1'];?></td>
        <td class="sty1"><?php echo $row['wr_2'];?></td>
        <td class="sty1"><?php echo $row['wr_3'];?></td>
        <td class="sty1"><?php echo $row['wr_4'];?></td>
        <td class="sty1"><?php echo $row['wr_5'];?></td>
        <td class="sty1"><?php echo $row['wr_6'];?></td>
        <td class="sty1"><?php echo $row['wr_7'];?></td>
        <td class="sty1"><?php echo $row['wr_8'];?></td>
        <td class="sty1"><?php echo $row['wr_9'];?></td>
        <td class="sty1"><?php echo $row['wr_10'];?></td>
    </tr>
<?php }
?>
    </table>
</body>
</html>

이 질문에 댓글 쓰기 :

답변 3

$fileurl = $file[$k]['path']."/".$file[$k]['file'];

->
$fileurl = $file[$k]['href'];
 

마르스컴퍼니님 답변 남겨주셔서 정말 감사합니다.
그런데 테스트 해봤는데요~

"잘못된 접근입니다." 라는 메시지와 함께
"토큰 유효시간이 지났거나 토큰이 유효하지 않습니다."
라는 메시지가 뜨네요~ㅜㅜ

말씀해주신 부분 참고해서 좀 더 체크해보겠습니다.
더 좋은 의견 있으시면 또 부탁드립니다. 감사합니다. ^^

마르스컴퍼니님 답변이 맞았습니다. ^^
덕분에 해결되었습니다.

download에서 유효토큰 관련된 내용을 모두 삭제하니 드디어 해결되었습니다.ㅎㅎ
답변 남겨주시고 도움주셔서 정말정말 감사드립니다. ^^


$file = get_file($bo_table, $row['wr_id']);
for($k=0; $k< $file['count']; $k++){
  $fileurl = $file[$k]['path']."/".$file[$k]['file'];
  echo '<a href="'.$fileurl.'">다운로드</a>';
}

->

$ss_name = 'ss_view_'.$bo_table.'_'.$row['wr_id'];
if (!get_session($ss_name)) set_session($ss_name, TRUE);
$file = get_file($bo_table, $row['wr_id']);
for ($k = 0; $k < $file['count']; $k++){
  $fileurl = $file[$k]['href'];
  echo '<a href="'.$fileurl.'">다운로드</a>';
}

 

※ https://sir.kr/qa/399273

 

https://gnustudy.com/bbs/board.php?bo_table=skin_board&wr_id=91

 

마르스컴퍼니님 애써 주셨는데..
여전히 같은 메시지가 뜨네요~

"잘못된 접근입니다." 라는 메시지와 함께
"토큰 유효시간이 지났거나 토큰이 유효하지 않습니다."
라는 메시지가 뜨네요~ㅜㅜ

관심가져주시고 애써주셔서 정말정말 감사드립니다.ㅜㅜ
좀 더 연구해보겠습니다. 흑흑

마르스컴퍼니님 말씀하신 부분
(bbs/download.php에서 아래 코드 찾아서 지우기)
이것도 다 해봤는데 여전히 토큰 유효시간이 지났거나 토큰이 유효하지 않다네요..

희한하네요.. 이게 왜 안될까요..ㅜㅜ
감사합니다. 마르스컴퍼니님 ^^


토큰 유효시간이 지났거나??? <==이런 에러가 나온다는 것은 그누보드 원본이 아닌 것 같은데요?
아래처럼 해보세요
$fileurl = $file[$k]['path']."/".$file[$k]['file']; 수정 ==> $fileurl = $file[$k]['href'];
스킨폴더에 download.head.skin.php 화일 생성
<?php
$ss_name = 'ss_view_'.$bo_table.'_'.$wr_id;
set_session($ss_name, TRUE);

 

 

 

 

 

와.. 균이님 너무 좋은 내용이네요..
거기까지 생각못했습니다.

현재 1:1 신청서 받는 기능을 부탁받아서
우선 이정도로 사용하고자 합니다.

말씀하신 내용도 꼭 염두해두고 스킨폴더 만들어서 넣을 수 있도록 해보겠습니다.
좋은 피드백 정말 감사드려요~^^

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 15
© SIRSOFT
현재 페이지 제일 처음으로