Table of Contents

Upload File 🔗

Uploading a file is usually done via multipart/form-data form submission.

            // 1. somewhere in a view, use enctype="multipart/form-data"
html"""
    <form action="/form-submit" method="POST" enctype="multipart/form-data">
    ...
    </form>
"""

// 2. define form data class with a NIO Path file
import java.nio.file.Path
import ba.sake.formson.*

case class MyData(file: Path) derives FormDataRW

// 3. handle the file however you want
case POST -> Path("form-submit") =>
  val formData = Request.current.bodyForm[MyData]
  val fileAsString = Files.readString(formData.file)

          

You can find a working example in the repo.