게시판에서 파일 다운로드 할때 이름 변경 질문
본문
게시판에서
aaa.xlsx 파일을 업로드후
다운로드 받을때
240101_글쓴이_aaa.xlsx 이런식으로 이름이 변경되서 다운로드 되게 가능할가요?
답변 2
안녕하세요.
download.php 파일을 수정하여 할수가 있을거 같습니다. 아래의 코드를 한번 참고를 해보세요.
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
$bo_table = $_GET['bo_table'];
$wr_id = $_GET['wr_id'];
$file_no = $_GET['file_no'];
// 해당 게시물의 정보를 가져옵니다.
$sql = "SELECT * FROM `g5_board_file` WHERE bo_table = '{$bo_table}' AND wr_id = '{$wr_id}' AND bf_no = '{$file_no}'";
$file = sql_fetch($sql);
if (!$file) {
alert('파일 정보가 없습니다.');
}
// 파일의 원본 이름과 확장자를 분리합니다.
$original_filename = $file['bf_source'];
$extension = pathinfo($original_filename, PATHINFO_EXTENSION);
// 새 파일명을 설정합니다.
$sql_writer = "SELECT mb_name FROM `g5_write_{$bo_table}` WHERE wr_id = '{$wr_id}'";
$writer_info = sql_fetch($sql_writer);
$writer = $writer_info['mb_name'];
$current_date = date('ymd'); // 현재 날짜를 'YYMMDD' 형식으로 가져옵니다.
$new_filename = "{$current_date}_{$writer}_{$original_filename}";
// 파일을 다운로드합니다.
$filepath = G5_DATA_PATH . '/file/' . $bo_table . '/' . urlencode($file['bf_file']);
if (is_file($filepath)) {
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . $new_filename . '"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($filepath));
readfile($filepath);
exit;
} else {
alert('파일이 존재하지 않습니다.');
}
?>
bbs/download.php에서 $original = rawurlencode($file['bf_source']); 이것만 다음처럼 수정하세요
$filename = date("ymd").'_'.$write['wr_name'].'_'.$file['bf_source'];
$original = rawurlencode($filename);