我有SpringBoot(v2.7.1,Spring v5.3.21)与Kotlin和WebFlux项目。我试图创建一个简单的文件上传控制器,到目前为止的工作,但只有小于500KB的文件。
@RestController
@RequestMapping("/emailFile")
class EmailController {
val logger = LoggerFactory.getLogger(this::class.java)
@PostMapping("/upload", consumes = [MediaType.MULTIPART_FORM_DATA_VALUE])
suspend fun uploadFile(
@RequestPart("attachment") attachment: FilePart,
@RequestPart("message") message: String
): ResponseEntity<String> {
val content = attachment.content().awaitFirst()
val bytes = content.asByteBuffer()
logger.debug(bytes.array().size.toString())
File("testfilespring.png").writeBytes(bytes.array());
return ResponseEntity(message, HttpStatus.ACCEPTED)
}
}
当我为大于500kb的文件记录bytes.array().size
时,它总是1024。
通过 Postman 或通过带有获取方法的React应用程序上传文件:
当我浏览应用程序日志时,我没有看到任何内容。我也尝试设置最大文件大小,但没有成功。
spring:
servlet:
multipart:
enabled: true
max-file-size: 10MB
max-request-size: 10MB
1条答案
按热度按时间ttp71kqs1#
看起来像这样工作: