val routes = {
(path("resize") & post) {
formFields('imageId, 'sizes, 'rotate ? "normal") { (imageId, sizesStr, rotateStr) =>
uploadedFile("image") {
case (meta, file) => {
complete {
// do something with file, sizes, rotate ...
}
}
}
}
}
Hi Marek,
This seems to happen whenever the request entity is non-strict.
I suppose you should be able to workaround this issue using entity.toStrict. But of course I think this should work out of the box.
If somebody wants to take a deeper look at this, here is a standalone reproducer: https://gist.github.com/rklaehn/d4d3ee43443b0f4741fb
Cheers,
Rüdiger
--
>>>>>>>>>> Read the docs: http://akka.io/docs/
>>>>>>>>>> Check the FAQ: http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user
---
You received this message because you are subscribed to the Google Groups "Akka User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email to akka-user+...@googlegroups.com.
To post to this group, send email to akka...@googlegroups.com.
Visit this group at https://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.
formData.parts.map { part =>
if (part.filename.isDefined) {
val destination = File.createTempFile("akka-http-upload", ".tmp")
val fileInfo = FileInfo(part.name, part.filename.get, part.entity.contentType)
part.entity.dataBytes.runWith(FileIO.toFile(destination)).map(_ => FilePart(fileInfo, destination))
} else {
part.entity.toStrict(10 seconds).map(e => ParamPart(part.name, e.data.utf8String))
}
}.runFold(ReqData(Map.empty, None)) {
case (acc, el) =>
el match {
case f: FilePart => acc.copy(file = Some(f))
case ParamPart(k, v) => acc.copy(params = acc.params + (k -> v))
}
}