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

첨부파일 설정한 용량보다 크면 채택완료

또르륵 1년 전 조회 8,170

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

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

 

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

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

 

 

</p>

<p>// bbs/ write_update.php</p>

<p>// 서버에 설정된 값보다 큰파일을 업로드 한다면

    if ($filename) {

        if ($_FILES['bf_file']['error'][$i] == 1) {

            $file_upload_msg .= '\"'.$filename.'\" 파일의 용량이 서버에 설정('.$upload_max_filesize.')된 값보다 크므로 업로드 할 수 없습니다.\\n';

            continue;

        }</p>

<p>

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

답변 3개

채택된 답변
+20 포인트

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

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

</p>

<p>        $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);</p>

<p>        // 서버에 설정된 값보다 큰파일을 업로드 한다면

        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;

            }

        }</p>

<p>

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

답변에 대한 댓글 2개

또르륵
1년 전
감사합니다 설국열차님!!!!! 해보겠습니다!
또르륵
1년 전
저도 이방법이 무조건 맞다고 생각했는데요 ;;; 의외로 되지 않습니다. 값 넣기전에 거르면 될 것 같은데 이상하네용;;;

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

이 단계는 게시글을 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++) {</p>

<p>            $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);</p>

<p>            // 서버에 설정된 값보다 큰파일을 업로드 한다면

            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;

                }

            }

        }

    }

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

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

답변에 대한 댓글 1개

또르륵
1년 전
와... 형님 절 받으세요 Orz

미래에도 이 자료를 찾으시는 분이 많을 것 같습니다. 감사합니다

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

또르륵
1년 전

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

 

https://sir.kr/qa/124982

 

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

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

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

 

 

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

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

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

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

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

로그인