첨부파일 용량이 설정보다 크다면 작성중이던 글쓰기로 돌아가기

첨부파일 용량이 설정보다 크다면 작성중이던 글쓰기로 돌아가기

QA

첨부파일 용량이 설정보다 크다면 작성중이던 글쓰기로 돌아가기

본문

항상 도움 주시는 분들께 감사합니다.

 

그누보드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 이하는 사용 불가능합니다.

https://developer.mozilla.org/en/docs/Web/API/File 

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 상단에 삽입 해야합니다 

대강 write_update.php에 말씀하신 소스를 손봐야 할 것같긴 했는데 역시나네요...프로그래머가 아닌 저로선...불가능에 가깝겠군요..ㅠㅠ

확인해보니 그누4부터 그랬던것같은데..사실 이런 형태가 좀 문제가 있어보이는건 저만 그런걸지..;;

당연히 첨부파일이 설정보다크면 다시올리도록 유도하는게 맞는것같은데..그냥 파일만 삭제하고 넘겨버리는건 좀 이해가 안되네요.

열린이글님 저번에도 그렇고 답변 정말 감사합니다.^^

답변을 작성하시기 전에 로그인 해주세요.
전체 19
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT