파일을 업로드 할때 업로드제한을 주면 경고메세지 나오게 하려면?
본문
지금 제가 파일을 업로드 하는것을 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;
}
}
}
}
답변을 작성하시기 전에 로그인 해주세요.