파일을 업로드 할때 업로드제한을 주면 경고메세지 나오게 하려면? 채택완료
사랑이11
10년 전
조회 3,418
지금 제가 파일을 업로드 하는것을 400kb로 줬거든요.
근데 이미지를 400KB로 주면 이미지가 등록되고, 400KB이상의 파일을 넣으면 그냥 경고메세지가 뜨지 않고 그냥 글쓰기가 되더라구요.
물론 이미지는 올라가지 않았지만, 방문자들은 왜 이미지 올라가지 않았는지 모르잖아요.
경고메세지가 떠서 글쓰기가 안되게 할수 없을까요?
그리고 파일유형을 jpg,png,gif 이거세개 파일만 허용되게요.
댓글을 작성하려면 로그인이 필요합니다.
답변 1개
채택된 답변
+20 포인트
10년 전
add_action 함수 에 대한 워드프레스 codex
https://codex.wordpress.org/ko:%ED%95%9C%EA%B5%AD%EC%96%B4/add_action" target="_blank" style="color: rgb(0, 0, 0); text-decoration: none;">https://codex.wordpress.org/ko:%ED%95%9C%EA%B5%AD%EC%96%B4/add_action
위의 문서의 내용을 참고하여 아래와 같이 코드를 작성해야 합니다.
gnupress/bbs/write_update.php 상단에 아래 코드 추가
</p><p style="word-break: break-all;"><font color="#505050" face="돋움, Dotum, sans-serif"><span style="font-size: 14.004px; letter-spacing: -0.01px; line-height: 25.2072px;">do_action('gnupress_write_update', $board, $is_admin);</span></font> </p><p style="word-break: break-all; color: rgb(80, 80, 80); font-family: 돋움, Dotum, sans-serif; font-size: 14.004px; letter-spacing: -0.01px; line-height: 25.2072px;">
사용하시는 테마의 functions.php 에 아래 내용을 추가합니다.
</p><p style="word-break: break-all;"><font color="#505050" face="돋움, Dotum, sans-serif"><span style="font-size: 14.004px; letter-spacing: -0.01px; line-height: 25.2072px;">add_action('gnupress_write_update', 'g5_write_update_check', 10, 2);</span></font></p><p style="word-break: break-all;"><font color="#505050" face="돋움, Dotum, sans-serif"><span style="font-size: 14.004px; letter-spacing: -0.01px; line-height: 25.2072px;">
</span></font></p><p style="word-break: break-all;"><font color="#505050" face="돋움, Dotum, sans-serif"><span style="font-size: 14.004px; letter-spacing: -0.01px; line-height: 25.2072px;">function g5_write_update_check($board, $is_admin=false){</span></font></p><p style="word-break: break-all;"><font color="#505050" face="돋움, Dotum, sans-serif"><span style="font-size: 14.004px; letter-spacing: -0.01px; line-height: 25.2072px;">
</span></font></p><p style="word-break: break-all;"><font color="#505050" face="돋움, Dotum, sans-serif"><span style="font-size: 14.004px; letter-spacing: -0.01px; line-height: 25.2072px;"> if( $is_admin ){ //관리자는 제외한다.</span></font></p><p style="word-break: break-all;"><font color="#505050" face="돋움, Dotum, sans-serif"><span style="font-size: 14.004px; letter-spacing: -0.01px; line-height: 25.2072px;"> return;</span></font></p><p style="word-break: break-all;"><font color="#505050" face="돋움, Dotum, sans-serif"><span style="font-size: 14.004px; letter-spacing: -0.01px; line-height: 25.2072px;"> }</span></font></p><p style="word-break: break-all;"><font color="#505050" face="돋움, Dotum, sans-serif"><span style="font-size: 14.004px; letter-spacing: -0.01px; line-height: 25.2072px;">
</span></font></p><p style="word-break: break-all;"><font color="#505050" face="돋움, Dotum, sans-serif"><span style="font-size: 14.004px; letter-spacing: -0.01px; line-height: 25.2072px;"> if( isset($_FILES['bf_file']) && !empty($_FILES['bf_file']) ){ //업로드한 파일이 있다면</span></font></p><p style="word-break: break-all;"><font color="#505050" face="돋움, Dotum, sans-serif"><span style="font-size: 14.004px; letter-spacing: -0.01px; line-height: 25.2072px;"> for ($i=0; $i<count($_FILES['bf_file']['name']); $i++) {</span></font></p><p style="word-break: break-all;"><font color="#505050" face="돋움, Dotum, sans-serif"><span style="font-size: 14.004px; letter-spacing: -0.01px; line-height: 25.2072px;"> $filesize = $_FILES['bf_file']['size'][$i];</span></font></p><p style="word-break: break-all;"><font color="#505050" face="돋움, Dotum, sans-serif"><span style="font-size: 14.004px; letter-spacing: -0.01px; line-height: 25.2072px;">
</span></font></p><p style="word-break: break-all;"><font color="#505050" face="돋움, Dotum, sans-serif"><span style="font-size: 14.004px; letter-spacing: -0.01px; line-height: 25.2072px;"> if(!$filesize){ //파일사이즈가 없으면</span></font></p><p style="word-break: break-all;"><font color="#505050" face="돋움, Dotum, sans-serif"><span style="font-size: 14.004px; letter-spacing: -0.01px; line-height: 25.2072px;"> continue;</span></font></p><p style="word-break: break-all;"><font color="#505050" face="돋움, Dotum, sans-serif"><span style="font-size: 14.004px; letter-spacing: -0.01px; line-height: 25.2072px;"> }</span></font></p><p style="word-break: break-all;"><font color="#505050" face="돋움, Dotum, sans-serif"><span style="font-size: 14.004px; letter-spacing: -0.01px; line-height: 25.2072px;"> $filename = g5_get_safe_filename($_FILES['bf_file']['name'][$i]);</span></font></p><p style="word-break: break-all;"><font color="#505050" face="돋움, Dotum, sans-serif"><span style="font-size: 14.004px; letter-spacing: -0.01px; line-height: 25.2072px;"> </span></font></p><p style="word-break: break-all;"><font color="#505050" face="돋움, Dotum, sans-serif"><span style="font-size: 14.004px; letter-spacing: -0.01px; line-height: 25.2072px;"> if ($filesize > $board['bo_upload_size']) { //파일 사이즈를 체크</span></font></p><p style="word-break: break-all;"><font color="#505050" face="돋움, Dotum, sans-serif"><span style="font-size: 14.004px; letter-spacing: -0.01px; line-height: 25.2072px;"> $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'</span></font></p><p style="word-break: break-all;"><font color="#505050" face="돋움, Dotum, sans-serif"><span style="font-size: 14.004px; letter-spacing: -0.01px; line-height: 25.2072px;"> g5_alert($file_upload_msg);</span></font></p><p style="word-break: break-all;"><font color="#505050" face="돋움, Dotum, sans-serif"><span style="font-size: 14.004px; letter-spacing: -0.01px; line-height: 25.2072px;"> exit;</span></font></p><p style="word-break: break-all;"><font color="#505050" face="돋움, Dotum, sans-serif"><span style="font-size: 14.004px; letter-spacing: -0.01px; line-height: 25.2072px;"> }</span></font></p><p style="word-break: break-all;"><font color="#505050" face="돋움, Dotum, sans-serif"><span style="font-size: 14.004px; letter-spacing: -0.01px; line-height: 25.2072px;"> if (!preg_match("/\.(gif|jpe?g|png)$/i", $filename)) { //jpg,png,gif 만 허용</span></font></p><p style="word-break: break-all;"><font color="#505050" face="돋움, Dotum, sans-serif"><span style="font-size: 14.004px; letter-spacing: -0.01px; line-height: 25.2072px;"> g5_alert("jpg,png,gif 파일만 올릴수 있습니다");</span></font></p><p style="word-break: break-all;"><font color="#505050" face="돋움, Dotum, sans-serif"><span style="font-size: 14.004px; letter-spacing: -0.01px; line-height: 25.2072px;"> exit;</span></font></p><p style="word-break: break-all;"><font color="#505050" face="돋움, Dotum, sans-serif"><span style="font-size: 14.004px; letter-spacing: -0.01px; line-height: 25.2072px;"> }</span></font></p><p style="word-break: break-all;"><font color="#505050" face="돋움, Dotum, sans-serif"><span style="font-size: 14.004px; letter-spacing: -0.01px; line-height: 25.2072px;"> }</span></font></p><p style="word-break: break-all;"><font color="#505050" face="돋움, Dotum, sans-serif"><span style="font-size: 14.004px; letter-spacing: -0.01px; line-height: 25.2072px;"> }</span></font></p><p style="word-break: break-all;"><font color="#505050" face="돋움, Dotum, sans-serif"><span style="font-size: 14.004px; letter-spacing: -0.01px; line-height: 25.2072px;">}</span></font></p><p style="word-break: break-all; color: rgb(80, 80, 80); font-family: 돋움, Dotum, sans-serif; font-size: 14.004px; letter-spacing: -0.01px; line-height: 25.2072px;">
로그인 후 평가할 수 있습니다
답변에 대한 댓글 2개
�
사랑이11
10년 전
t
thisgun
10년 전
그렇게 하려면 매우 많이 코드를 추가해야 합니다만,
너무 복잡하므로 저두 더 이상 코드를 못 적겠습니다.
너무 복잡하므로 저두 더 이상 코드를 못 적겠습니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
현재 이렇게 하니깐 경고창이 나와서 되돌가니깐 작성한 글이 다 없더라구요.
작성했던 데이터는 남길수 없을까요?