diff --git a/src/main/java/com/ddf/vodsystem/controllers/GlobalExceptionHandler.java b/src/main/java/com/ddf/vodsystem/controllers/GlobalExceptionHandler.java index 3d31742..df6e962 100644 --- a/src/main/java/com/ddf/vodsystem/controllers/GlobalExceptionHandler.java +++ b/src/main/java/com/ddf/vodsystem/controllers/GlobalExceptionHandler.java @@ -2,12 +2,32 @@ package com.ddf.vodsystem.controllers; import com.ddf.vodsystem.exceptions.JobNotFinished; import com.ddf.vodsystem.exceptions.JobNotFound; +import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; +import org.springframework.web.HttpMediaTypeNotSupportedException; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.multipart.MultipartException; +import org.springframework.web.multipart.support.MissingServletRequestPartException; @ControllerAdvice public class GlobalExceptionHandler { + @ExceptionHandler({ MultipartException.class }) + public ResponseEntity handleMultipartException(MultipartException ex) { + return ResponseEntity.badRequest().body("Request is not multipart/form-data."); + } + + @ExceptionHandler({ MissingServletRequestPartException.class }) + public ResponseEntity handleMissingPart(MissingServletRequestPartException ex) { + return ResponseEntity.badRequest().body("Required file part is missing."); + } + + @ExceptionHandler({ HttpMediaTypeNotSupportedException.class }) + public ResponseEntity handleUnsupportedMediaType(HttpMediaTypeNotSupportedException ex) { + return ResponseEntity.status(HttpStatus.UNSUPPORTED_MEDIA_TYPE) + .body("Unsupported media type: expected multipart/form-data."); + } + @ExceptionHandler(IllegalArgumentException.class) public ResponseEntity handleIllegalArgument(IllegalArgumentException ex) { return ResponseEntity.status(400).body(ex.getMessage()); diff --git a/src/main/java/com/ddf/vodsystem/controllers/UploadController.java b/src/main/java/com/ddf/vodsystem/controllers/UploadController.java index 5248086..92f3d3c 100644 --- a/src/main/java/com/ddf/vodsystem/controllers/UploadController.java +++ b/src/main/java/com/ddf/vodsystem/controllers/UploadController.java @@ -20,8 +20,11 @@ public class UploadController { @PostMapping() public ResponseEntity uploadVideo(@RequestParam("file") MultipartFile file) { - String uuid = uploadService.upload(file); + if (file == null || file.isEmpty()) { + throw new IllegalArgumentException("Invalid file"); + } + String uuid = uploadService.upload(file); return new ResponseEntity<>(uuid, HttpStatus.OK); } }