Пустой объект запроса при загрузке файла с использованием Spark Framework - PullRequest
0 голосов
/ 20 апреля 2019

Я пытаюсь загрузить файл на сервер, используя Spark Framework (Kotlin).Проблема в том, что объект запроса возвращает нулевое значение, когда я пытаюсь получить доступ к частям.

Я перепробовал все решения в интернете, но они не сработали.Я пытался использовать загрузку файлов Apache Commons, но у меня тоже ничего не вышло.

Вот запрос на стороне клиента:

fun uploadFile(file: FormData, onSuccess: (XMLHttpRequest) -> Unit, onError: () -> Unit){
        val xmlHttp = XMLHttpRequest()
        val url = "api/admin/v1/events/upload"
        xmlHttp.open(HTTP_POST_VERB, "$BASE_URL$url", true)
        xmlHttp.setRequestHeader("Authorization", "$accessToken")
        xmlHttp.setRequestHeader("Content-Type", "multipart/form-data")
        xmlHttp.onerror = { onError() }
        xmlHttp.onload = { onSuccess(xmlHttp) }
        xmlHttp.send(file)
    }

На стороне сервера:

post("/events/upload") { req, res ->
                    val location = "images"
                    val  maxFileSize: Long = 100000000
                    val maxRequestSize: Long = 100000000
                    val fileSize = 1024

                    val multipartConfigElement = MultipartConfigElement(location, maxFileSize, maxRequestSize, fileSize)
                    req.raw().setAttribute("org.eclipse.jetty.multipartConfig", multipartConfigElement)

                    req.raw().parts.forEach {
                        println(it.name)
                        println(it.size)
                        println(it.submittedFileName)
                    }
                }

Когда я отправляю запрос, он ничего не выводит.

Это вывод регистратора (только первые строки):

INFO 2019-04-20 22:28:09,058 [qtp1059738358-16] (Logger.kt:12) - POST http://localhost:8030/api/admin/v1/events/upload ------WebKitFormBoundaryzUL5QI9Jk5oA8yzP
Content-Disposition: form-data; name="uploaded-file"; filename="manifold.jpg"
Content-Type: image/jpeg

���� JFIF      �� C 



%# , #&')*)-0-(0%()(�� C


Как видно, запрос очень хорошо распознается в регистраторе, но в коде он неРабота.Кроме того, я попытался опубликовать файл с помощью почтальона, и это не сработало.Кроме того, request.contentType() выводит multipart/form-data, а request.body() ничего не выводит.

...