顶点上传文件:BodyHandler 方法不起作用

Vertex upload file: BodyHandler methods not working


我想上传头像。我的端点是使用 OpenAPI3RouterFactory(api.yaml 文件)设置的。

api.yaml:

#other endpoints

/api/v1/upload-avatar:
  post:
    summary: Uploading avatars endpoint
    operationId: upload-avatar
    tags:
      - sign up
      - registration

#other ones


HandlerVerticle.kt:

//OpenApi3Router is set
//other endpoints
routerFactory.addHandlerByOperationId("upload-avatar", BodyHandler.create().setDeleteUploadedFilesOnEnd(true).setUploadsDirectory("mp-upload").setMergeFormAttributes(true))
routerFactory.addHandlerByOperationId("upload-avatar", { routingContext -> 
        val fileUploadSet = routingContext.fileUploads()
        val fileUploadIterator = fileUploadSet.iterator()
        while (fileUploadIterator.hasNext()) {
            val fileUpload = fileUploadIterator.next()
            val uploadedFile = vertx.fileSystem().readFileBlocking(fileUpload.uploadedFileName())

            try {
                val fileName = URLDecoder.decode(fileUpload.fileName(), "UTF-8")
                vertx.fileSystem().writeFileBlocking(fileName , uploadedFile)
                routingContext.response().end()
            } catch (e: Exception) {
                e.printStackTrace()
            }


        }
})

//other routes

当我上传图片时它上传成功了,但是在服务器端vertx创建了错误的上传目录,并且它没有删除临时上传的文件。谁能帮帮我?

不确定这是否应该被视为错误或有意为之,但是...

OpenAPI3RouterFactoryImpl.getRouter() always overrides BodyHandler

无论你之前在那里设置了什么。

我现在开了一个新问题:https://github.com/vert-x3/vertx-web/issues/860