테스트 사이트 - 개발 중인 베타 버전입니다

게시판 첨부파일 확장자 제한 채택완료

낑스맨 2개월 전 조회 434

안녕하세요

특정 게시판에 첨부파일 첨부하는 확장자를 pdf만 첨부 가능하게 하고싶은데 어떻게 해야될까요..?ㅠ

 

댓글을 작성하려면 로그인이 필요합니다.

답변 4개

채택된 답변
+20 포인트
2개월 전

update 단에서 하게 되면 사용자의 게시글이 날아갈수도 있으므로

글쓰기 단에서 1차적으로 채크해주시면 더 좋습니다.

 

</p>

<p>    <?php for ($i=0; $is_file && $i<$file_count; $i++) { ?>

    <div class="bo_w_flie write_div">

        <div class="file_wr write_div">

            <label for="bf_file_<?php echo $i+1 ?>" class="lb_icon"><i class="fa fa-folder-open" aria-hidden="true"></i><span class="sound_only"> 파일 #<?php echo $i+1 ?></span></label>

            <input type="file" name="bf_file[]" id="bf_file_<?php echo $i+1 ?>" title="파일첨부 <?php echo $i+1 ?> : 용량 <?php echo $upload_max_filesize ?> 이하만 업로드 가능" class="frm_file " accept="application/pdf">

        </div>

        <?php if ($is_file_content) { ?>

        <input type="text" name="bf_content[]" value="<?php echo ($w == 'u') ? $file[$i]['bf_content'] : ''; ?>" title="파일 설명을 입력해주세요." class="full_input frm_input" size="50" placeholder="파일 설명을 입력해주세요.">

        <?php } ?></p>

<p>        <?php if($w == 'u' && $file[$i]['file']) { ?>

        <span class="file_del">

            <input type="checkbox" id="bf_file_del<?php echo $i ?>" name="bf_file_del[<?php echo $i;  ?>]" value="1"> <label for="bf_file_del<?php echo $i ?>"><?php echo $file[$i]['source'].'('.$file[$i]['size'].')';  ?> 파일 삭제</label>

        </span>

        <?php } ?>

        

    </div>

    <?php } ?></p>

<p>

 

베이직 스킨 기준으로 input type 이 file 인 곳에

 

 

 accept="application/pdf"

 

이거하나 추가해주시면

 

 

이렇게 pdf 파일이 우선 적용됩니다.

다만 셀렉트 박스를 누르면 모든파일 선택이 가능하므로

 

 

</p>

<p>    <script>

    document.addEventListener("DOMContentLoaded", function() {

        document.querySelectorAll("input[type='file']").forEach(function(input) {

            input.addEventListener("change", function(e) {

                const file = e.target.files[0];

                if (!file) return; // 선택 안 한 경우 패스</p>

<p>                // 확장자 검사

                const ext = file.name.split('.').pop().toLowerCase();

                if (ext !== "pdf") {

                    alert("PDF 파일만 업로드할 수 있습니다.");

                    e.target.value = ""; // 파일 선택 비움

                }

            });

        });

    });

    </script></p>

<p>

 

이 스크립트 하나 넣어주시면 input file 에 들어가는 확장자를 검사해서 pdf 가 아니면 경고 후 해당 input 을 비워주게 됩니다.

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

낑스맨
2개월 전
요렇게 하니 잘 되긴하는데 혹시 특정 게시판 아이디만 지정해서 적용하려면 어떻게 해야하나요?

댓글을 작성하려면 로그인이 필요합니다.

2개월 전

특정게시판에서만 하려면

 

free 보드만 적용

여기에 다 넣으세요

그외 보드 적용

 

이렇게 if 로 분기하시면됩니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

2개월 전

플라이님이 힌트를 다 주셨네요.

코어를 수정 안하실려면 

스킨에 write_update.head.skin.php 파일을 만드시고

for ($i=0; $i

    $filename = $_FILES['bf_file']['name'][$i];     $ext = strtolower(pathinfo($filename, PATHINFO_EXTENSION));     if ($ext !== 'pdf') {         alert("이 게시판은 PDF 파일만 첨부 가능합니다.");     }

}

해서 파일 글 등록 전에 체크를 해주시면 될 거 같습니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

낑스맨
2개월 전
감사합니다!

댓글을 작성하려면 로그인이 필요합니다.

플라이
2개월 전

/bbs/write_update.php

 

// 특정 게시판만 pdf 제한 if ($bo_table === '게시판아이디') {     $filename = $_FILES['bf_file']['name'][$i];     $ext = strtolower(pathinfo($filename, PATHINFO_EXTENSION));     if ($ext !== 'pdf') {         alert("이 게시판은 PDF 파일만 첨부 가능합니다.");     } } 이런식으로 특정 게시판 아이디만 pdf 업로드 가능하게 처리 해주시면 되십니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

낑스맨
2개월 전
뭘 잘못했는지 pdf파일도 업로드가 안되네요ㅠㅠ 다시한번 시도해보겠습니다 감사합니다!

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인