使用Spark框架上传文件时,请求对象为空

时间:2019-04-20 20:22:26

标签: file-upload kotlin xmlhttprequest multipartform-data spark-java

我正在尝试使用Spark框架(Kotlin)将文件上传到服务器。问题是当我尝试访问部件时,请求对象返回空值。

我尝试了Internet上的所有解决方案,但没有用。我尝试使用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()什么也不输出。

0 个答案:

没有答案