첨부파일 설정한 용량보다 크면

첨부파일 설정한 용량보다 크면

QA

첨부파일 설정한 용량보다 크면

본문

첨부파일이 설정한 용량보다 크면 글 등록이 안되는 줄 알았는데요~

아래와 같이 경고창을 띄우고 (첨부없는 상태로) 글 작성이 되더라구요.

 

경고창 뜨고 "글 작성이 안되도록" 할 수도 있을까요? 

전 return 넣으면 되는 줄 알았는데 아닌 것 같더라구요~

 

 


// bbs/ write_update.php
// 서버에 설정된 값보다 큰파일을 업로드 한다면
    if ($filename) {
        if ($_FILES['bf_file']['error'][$i] == 1) {
            $file_upload_msg .= '\"'.$filename.'\" 파일의 용량이 서버에 설정('.$upload_max_filesize.')된 값보다 크므로 업로드 할 수 없습니다.\\n';
            continue;
        }

이 질문에 댓글 쓰기 :

답변 3

이 단계는 게시글을 insert 한 후 실행 될 것입니다.
첨부파일 실행되는 부분을 맨위로 하면 문제가 등록되지 않고 되돌아 가도록 하는것 가능 할 것입니다.
bbs/write_update.php

아래 부분을 위쪽으로 적당한 곳에 옮기세요....


        $tmp_file  = $_FILES['bf_file']['tmp_name'][$i];
        $filesize  = $_FILES['bf_file']['size'][$i];
        $filename  = $_FILES['bf_file']['name'][$i];
        $filename  = get_safe_filename($filename);
        // 서버에 설정된 값보다 큰파일을 업로드 한다면
        if ($filename) {
            if ($_FILES['bf_file']['error'][$i] == 1) {
                $file_upload_msg .= '\"'.$filename.'\" 파일의 용량이 서버에 설정('.$upload_max_filesize.')된 값보다 크므로 업로드 할 수 없습니다.\\n';
                $redirect_url = './board.php?bo_table=XXXX 또는 게시물 읽기로 해당페이지로 되돌아 가는 링크를 넣음';
                alert($file_upload_msg, $redirect_url);
                exit;
                continue;
            }
            else if ($_FILES['bf_file']['error'][$i] != 0) {
                $file_upload_msg .= '\"'.$filename.'\" 파일이 정상적으로 업로드 되지 않았습니다.\\n';
                $redirect_url = './board.php?bo_table=XXXX 또는 게시물 읽기로 해당페이지로 되돌아 가는 링크를 넣음';
                alert($file_upload_msg, $redirect_url);
                exit;
                continue;
            }
        }

이 단계는 게시글을 insert 한 후 실행 될 것입니다.
첨부파일 실행되는 부분을 맨위로 하면 문제가 등록되지 않고 되돌아 가도록 하는것 가능 할 것입니다.
bbs/write_update.php

아래 부분을 위쪽으로 적당한 곳에 옮기세요....


    if(isset($_FILES['bf_file']['name']) && is_array($_FILES['bf_file']['name'])) {
        for ($i=0; $i<count($_FILES['bf_file']['name']); $i++) {
            $tmp_file  = $_FILES['bf_file']['tmp_name'][$i];
            $filesize  = $_FILES['bf_file']['size'][$i];
            $filename  = $_FILES['bf_file']['name'][$i];
            $filename  = get_safe_filename($filename);
            // 서버에 설정된 값보다 큰파일을 업로드 한다면
            if ($filename) {
                if ($_FILES['bf_file']['error'][$i] == 1) {
                    $file_upload_msg .= '\"'.$filename.'\" 파일의 용량이 서버에 설정('.$upload_max_filesize.')된 값보다 크므로 업로드 할 수 없습니다.\\n';
                    $redirect_url = './board.php?bo_table=XXXX 또는 게시물 읽기로 해당페이지로 되돌아 가는 링크를 넣음';
                    alert($file_upload_msg, $redirect_url);
                    exit;
                    continue;
                }
                else if ($_FILES['bf_file']['error'][$i] != 0) {
                    $file_upload_msg .= '\"'.$filename.'\" 파일이 정상적으로 업로드 되지 않았습니다.\\n';
                    $redirect_url = './board.php?bo_table=XXXX 또는 게시물 읽기로 해당페이지로 되돌아 가는 링크를 넣음';
                    alert($file_upload_msg, $redirect_url);
                    exit;
                    continue;
                }
            }
        }
    }

시간이 없어서 제대로 못 봤는데 빠진 부분이 있습니다.
위에 처럼 하면 아라 될 것입니다.

헉 요게 생각보다 큰 일이었네요.   찾아보니 요런 내용이 있었습니다.

 

https://sir.kr/qa/124982

 

제 생각에도 위 질문자님 말처럼

첨부파일의 용량이 제한 해놓은 용량보다 크면~~  글을 다시 작성하도록 유도 하는게 맞는 것 같은데.

첨부파일은 무시되면서 글이 올라가야 하는 어쩔 수 없는 이유가 있었을지도 모르겠습니다!!

 

 

대신 글 작성완료 전에  첨부파일 용량 체크를 해서 걸러내면 되지만 <<  이게 또... 

특정 안드로이드 버전에서 보안상 문제를 일으키더라구요 ㅠㅠ  구글 이놈들..

답변을 작성하시기 전에 로그인 해주세요.
전체 15,429
QA 내용 검색
filter #php ×

회원로그인

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