게으른 개발자의 끄적거림

Java 업로드 (.pdf .jpg .zip)

끄적잉 2023. 12. 28. 21:40
728x90

파일 업로드에 대한 제한을 변경하여 .zip 파일도 허용하도록 만들려면, 서버 측과 클라이언트 측 양쪽에서 수정해야 할 부분이 있습니다. 여기에 간단한 예제를 제시하겠습니다.

### 1. 서버 측 (Java - Spring Framework 기준)

#### Controller 클래스 수정:
```java
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;

@RestController
@RequestMapping("/upload")
public class FileUploadController {

    @PostMapping
    public String handleFileUpload(@RequestParam("file") MultipartFile file) {
        // 여기에 파일 처리 로직을 추가

        // 예시: 파일 이름 출력
        System.out.println("Uploaded file name: " + file.getOriginalFilename());

        return "File uploaded successfully!";
    }
}
```

#### 설정 파일에 파일 확장자 제한 추가:
```java
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
import org.springframework.web.multipart.commons.MultipartResolver;

@Configuration
public class AppConfig {

    @Bean
    public MultipartResolver multipartResolver() {
        CommonsMultipartResolver resolver = new CommonsMultipartResolver();
        resolver.setMaxUploadSize(10485760); // 10MB 제한 (원하는 크기로 수정 가능)

        // 허용할 파일 확장자 추가
        resolver.setAllowedFileTypes(new String[]{"jpg", "pdf", "zip"});

        return resolver;
    }
}
```


이 코드는 Spring Framework를 기준으로 작성되었으며, 실제로 사용 중인 프레임워크에 따라 코드가 달라질 수 있습니다. 또한, 파일 처리 로직은 실제 요구사항에 따라 수정해야 합니다.

### 2. 클라이언트 측 (HTML - 기본적인 예제)

```html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>File Upload</title>
</head>
<body>
    <form action="/upload" method="post" enctype="multipart/form-data">
        <label for="file">Choose a file:</label>
        <input type="file" id="file" name="file" accept=".jpg, .pdf, .zip">
        <button type="submit">Upload</button>
    </form>
</body>
</html>
```

`accept` 속성을 사용하여 클라이언트 측에서도 특정 확장자만 허용하도록 설정할 수 있습니다. 위의 예제에서는 .jpg, .pdf, .zip 파일만 허용하도록 설정되어 있습니다.

이 예제 코드를 참고하여 프로젝트에 적용하시면 됩니다. 프레임워크나 라이브러리에 따라 세부적인 설정은 다를 수 있으니 해당 문서를 참조하여 작업하시면 됩니다.

728x90

'게으른 개발자의 끄적거림' 카테고리의 다른 글

Java static이란? static변수 설명  (0) 2024.01.02
싱글톤 패턴(Singleton Pattern)이란?  (0) 2024.01.02
Java EE란?  (0) 2023.12.27
JEUS란?? JEUS 설명  (0) 2023.12.26
Java ServletException 해결 방법  (1) 2023.12.26