Jeff Hudson
10/15/2024, 3:56 PMmultipart/form-data
in Ktor 3.0 🧵Jeff Hudson
10/15/2024, 3:59 PMval fileProvider = getPart()?.provider
// later in the code
fileProvider?.invoke().readRemaining().readByteArray()
fun getPart(): PartData? = {
call.receiveMultipart().forEachPart { part ->
if (part is PartData.FileItem) return@getPart part
}
return null
}
This worked fine. But in Ktor 3.0 I get an empty byte array if I do this.
Is Ktor 3.0 doing some automatic cleanup of stream or provider before I get to reading the data?Aleksei Tirman [JB]
10/15/2024, 5:54 PMAleksei Tirman [JB]
10/15/2024, 5:55 PMJeff Hudson
10/15/2024, 5:57 PMpreviousPart?.dispose?.invoke()
looks like it would do it. We have a try/finally that does the dispose later on.Jeff Hudson
10/15/2024, 5:57 PMAleksei Tirman [JB]
10/15/2024, 5:59 PMJeff Hudson
10/15/2024, 5:59 PMDieppa
01/28/2025, 6:35 PM