파일을 업로드 할때 업로드제한을 주면 경고메세지 나오게 하려면?

파일을 업로드 할때 업로드제한을 주면 경고메세지 나오게 하려면?

QA

파일을 업로드 할때 업로드제한을 주면 경고메세지 나오게 하려면?

본문

지금 제가 파일을 업로드 하는것을 400kb로 줬거든요.

근데 이미지를 400KB로 주면 이미지가 등록되고, 400KB이상의 파일을 넣으면 그냥 경고메세지가 뜨지 않고 그냥 글쓰기가 되더라구요.  

물론 이미지는 올라가지 않았지만, 방문자들은 왜 이미지 올라가지 않았는지 모르잖아요.

경고메세지가 떠서 글쓰기가 안되게 할수 없을까요?

그리고 파일유형을 jpg,png,gif 이거세개 파일만 허용되게요. 

이 질문에 댓글 쓰기 :

답변 1

add_action 함수 에 대한 워드프레스 codex

https://codex.wordpress.org/ko:%ED%95%9C%EA%B5%AD%EC%96%B4/add_action

 

위의 문서의 내용을 참고하여 아래와 같이 코드를 작성해야 합니다.

 

gnupress/bbs/write_update.php 상단에 아래 코드 추가


do_action('gnupress_write_update', $board, $is_admin); 

 

사용하시는 테마의 functions.php 에 아래 내용을 추가합니다.


add_action('gnupress_write_update', 'g5_write_update_check', 10, 2);


function g5_write_update_check($board, $is_admin=false){


    if( $is_admin ){    //관리자는 제외한다.
        return;
    }


    if( isset($_FILES['bf_file']) && !empty($_FILES['bf_file']) ){    //업로드한 파일이 있다면
        for ($i=0; $i<count($_FILES['bf_file']['name']); $i++) {
            $filesize  = $_FILES['bf_file']['size'][$i];


            if(!$filesize){ //파일사이즈가 없으면
                continue;
            }
            $filename  = g5_get_safe_filename($_FILES['bf_file']['name'][$i]);
            
            if ($filesize > $board['bo_upload_size']) {     //파일 사이즈를 체크
                $file_upload_msg = sprintf(__('Because the capacity of a file %s (%s byte) is set on the board ( %s byte) values are not uploaded to the greater than upload failed.\\n', G5_NAME), $filename, number_format($filesize), number_format($board['bo_upload_size']));  //$filename 파일의 용량(number_format($filesize) 바이트)이 게시판에 설정(number_format($board['bo_upload_size']) 바이트)된 값보다 크므로 업로드 하지 않습니다.\\n'
                g5_alert($file_upload_msg);
                exit;
            }
            if (!preg_match("/\.(gif|jpe?g|png)$/i", $filename)) { //jpg,png,gif 만 허용
                g5_alert("jpg,png,gif 파일만 올릴수 있습니다");
                exit;
            }
        }
    }
}

이렇게 하니깐 되네요. 감사합니다. 근데 마지막으로 하나 더 물어봐도 될까요?
현재 이렇게 하니깐 경고창이 나와서 되돌가니깐 작성한 글이 다 없더라구요.
작성했던 데이터는 남길수 없을까요?

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

회원로그인

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