첨부파일 용량이 설정보다 크다면 작성중이던 글쓰기로 돌아가기
본문
항상 도움 주시는 분들께 감사합니다.
그누보드5 기본은 첨부파일용량이 게시판설정용량보다 크면 안내문구 띄우고 첨부시키지 않도록 되어있는데..무조건 파일은 받아야하는 게시판을 제작중이라 제목그대로 첨부용량이 크면 경고 후 다시 작성중이던 내용으로(입력한 내용은 그대로 있어야합니다.) 가는방법이 있을까요?
짧은 지식으론 이미 폼내용이 넘어가버리면 힘들듯한데..작성페이지에서 검사하는 스크립트같은거라도 있을까요??
답변 2
<script type="text/javascript">
function chkFileSize() {
var f = document.getElementById("test").files[0];
if(f.size > 100000) {
alert("정해진 용량보다 큼");
return false;
}
}
</script>
<input type="file" name="test" id="test" onchange="chkFileSize()">
이런 식으로 사용자단에서 한 번 스크립트로 체크하시면 될 것 같네요.
다만 file api는 ie10 이상부터 지원을 하는지라 9 이하는 사용 불가능합니다.
!-->for ($i=0; $i<count($_FILES['bf_file']['name']); $i++) {
$upload[$i]['file'] = '';
$upload[$i]['source'] = '';
$upload[$i]['filesize'] = 0;
$upload[$i]['image'] = array();
$upload[$i]['image'][0] = '';
$upload[$i]['image'][1] = '';
$upload[$i]['image'][2] = '';
// 삭제에 체크가 되어있다면 파일을 삭제합니다.
if (isset($_POST['bf_file_del'][$i]) && $_POST['bf_file_del'][$i]) {
$upload[$i]['del_check'] = true;
$row = sql_fetch(" select bf_file from {$g5['board_file_table']} where bo_table = '{$bo_table}' and wr_id = '{$wr_id}' and bf_no = '{$i}' ");
@unlink(G5_DATA_PATH.'/file/'.$bo_table.'/'.$row['bf_file']);
// 썸네일삭제
if(preg_match("/\.({$config['cf_image_extension']})$/i", $row['bf_file'])) {
delete_board_thumbnail($bo_table, $row['bf_file']);
}
}
else
$upload[$i]['del_check'] = false;
$tmp_file = $_FILES['bf_file']['tmp_name'][$i];
$filesize = $_FILES['bf_file']['size'][$i];
$filename = $_FILES['bf_file']['name'][$i];
$filename = get_safe_filename($filename);
// 서버에 설정된 값보다 큰파일을 업로드 한다면
if ($filename) {
if ($_FILES['bf_file']['error'][$i] == 1) {
$file_upload_msg .= '\"'.$filename.'\" 파일의 용량이 서버에 설정('.$upload_max_filesize.')된 값보다 크므로 업로드 할 수 없습니다.\\n';
continue;
}
else if ($_FILES['bf_file']['error'][$i] != 0) {
$file_upload_msg .= '\"'.$filename.'\" 파일이 정상적으로 업로드 되지 않았습니다.\\n';
continue;
}
}
이런 소스가 이미 있습니다 하지만 이소스를 가공해서 write_update.php 상단에 삽입 해야합니다