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

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

QA

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

답변 1

본문

지금 제가 파일을 업로드 하는것을 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;
            }
        }
    }
}

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

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