Computer >> 컴퓨터 >  >> 프로그래밍 >> HTML

HTML 다중 파일 입력(multiple)에서 업로드 파일 수를 제한하는 방법

HTML 폼에서 여러 개의 파일을 한 번에 업로드할 수 있도록 하려면 multiple 속성을 사용하면 됩니다. 이 속성은 file 타입과 email 타입의 입력 필드에서 동작합니다.

HTML 다중 파일 입력(multiple)에서 업로드 파일 수를 제한하는 방법

JavaScript로 업로드 파일 수 제한하기

다중 입력 필드에서 선택할 수 있는 파일의 최대 개수를 제한하려면 JavaScript를 활용해야 합니다. multiple 속성만으로는 파일 개수 제한이 불가능하기 때문에, 사용자가 선택한 파일 목록의 길이를 확인하는 방식으로 구현합니다.

예를 들어, 한 번에 최대 3개의 파일만 업로드할 수 있도록 제한하고 싶다면, 제출 버튼을 클릭하는 시점에 파일 개수를 검사하여 초과했을 경우 경고 메시지를 표시하도록 처리할 수 있습니다.

예제 코드

아래 코드는 multiple 속성을 사용한 다중 파일 업로드 폼과, JavaScript(jQuery)로 업로드 파일 수를 제한하는 방법을 보여줍니다.

<!DOCTYPE html>
<html>
   <head>
      <title>HTML file upload</title>
   </head>
   <body>
      <form>
         <input type="file" action="/action_page.php" name="name" multiple><br/>
         여러 개의 파일을 선택한 후 제출 버튼을 클릭하세요.<br>
         <input type = "submit" value = "submit">
      </form>
      <script>
         $(function(){
            $("input[type = 'submit']").click(function(){
               var $fileUpload = $("input[type='file']");
               if (parseInt($fileUpload.get(0).files.length) > 3){
                  alert("최대 3개의 파일만 업로드할 수 있습니다.");
               }
            });
         });
      </script>
   </body>
</html>

동작 원리

위 예제의 핵심 로직은 다음과 같습니다.

1. 제출 버튼 클릭 시 click 이벤트가 발생합니다.
2. $fileUpload.get(0).files를 통해 사용자가 선택한 파일 목록(FileList 객체)에 접근합니다.
3. files.length로 파일 개수를 확인하고, 3개를 초과하면 alert()으로 경고 메시지를 출력합니다.

참고로, 실무에서는 경고 표시와 함께 e.preventDefault()를 호출하여 폼 제출 자체를 막는 것이 좋습니다. 또한 클라이언트 측 검증은 우회될 수 있으므로, 서버 측에서도 반드시 파일 개수를 다시 확인해야 안전합니다.