새 미디어 업로드 화면에서 업로드할 때 파일 용량 제한

워드프레스 8 책에 보면 이미지가 가로와 세로 지정한 사이즈보다 크면 그 이미지 업로드가 안되도록 제한하고 있는데, 제가 궁금한 거는 사이즈말고 업로드하는 파일이 지정한 용량보다 크면 업로드가 되지 않도록 하는 겁니다.

검색하면 거의 다 .htaccess 파일에 파일 크기를 설정하는 방법만 있더라구요. 책에 있는 코드처럼 워드프레스 훅으로 제한할 수 있는 방법이 있나요?

댓글 2

  1. 우선, “지정한 사이즈보다 크면”이 아니라 ‘작으면’입니다.

    세부 코드는 생략하고, 책에는 다음 필터로 되어 있을 거에요.

    add_filter( 'wp_handle_upload_prefilter', 'pic_limit_resolution' );
    function pic_limit_resolution( $file ) {
    	// 생략
    }

    같은 필터 훅을 사용해서 다음처럼 정의하면 되지 않을까요.

    add_filter( 'wp_handle_upload_prefilter', 'pic_limit_resolution' );
    function pic_limit_resolution( $file ) {
    	$size = $file['size'];
    	$max_size = 2097152; // 2MB
    	if( $size > $max_size || $size == 0 ) {
            $file['error'] = sprintf( '업로드한 파일은 %dMB, 파일용량은 %dMB 이하만 가능.', size_format( $size, 2 ), size_format( $max_size, 2 ) );
        }
    	
    	return $file;
    }

    $max_size 값은 원하는 것으로 변경하시면 됩니다. 해보시고 잘 안되면 댓글 주세요.

    그리고, 첨부한 이미지의 “최대 업로드 파일 크기: 256 MB.” 이 부분에서 256 값이 위의 코드에 있는 값으로 변경되지는 않습니다. 서버의 설정 값을 가져오는 거 같습니다.

    변경하려면 다른 방법을 사용해야 하는데, 기회가 된다면 따로 포스트를 작성하는 게 좋을 거 같습니다.

    1. 알려주신 코드로 테스트해보았는데, 잘 됩니다.^^ 말씀하신 “최대 업로드 파일 크기: 256 MB” 이 부분 변경하는 것도 나중에 포스팅 해주시면 좋겠네요. 고맙습니다.