Это документ о том, как загрузить файл в play2: https://github.com/playframework/Play20/wiki/ScalaFileUpload
Но у меня есть еще один вопрос: мы не можем больше использовать путь play1?
В play1,Я могу загрузить файл следующим образом:
routes
--------
post /upload Application.upload
Application.java
----------------
public static void upload(File file) { ... }
Действие upload
автоматически получит загруженный файл.
Но как сделать то же самое в play2?
Я попытался:
routes:
--------
POST /upload controllers.Application.upload
Application.scala
-----------------
def upload(file: File) = Action { ...}
Но он не может скомпилироваться, сообщение об ошибке:
not enough arguments for method upload: (file: java.io.File)
Затем я добавляю параметр в маршруты:
POST /upload controllers.Application.upload(file: java.io.File)
Он по-прежнему сообщает об ошибке:
No QueryString binder found for type java.io.File. Try to implement an implicit QueryStringBindable for this type.