我试图允许用户将照片上传到服务器然后查看它们。上传按照描述进行 in this guide 。这是代码:
def upload = Action(parse.multipartFormData) { request =>
request.body.file("picture").map { picture =>
import java.io.File
val filename = picture.filename
val contentType = picture.contentType
picture.ref.moveTo(new File("/tmp/picture"))
Ok("File uploaded")
}.getOrElse {
Redirect(routes.Application.index).flashing(
"error" -> "Missing file"
)
}
}
我不清楚如何将上传的图像返回给想要查看它们的用户。现在,我在自己的计算机上托管服务器,因此指南中的代码片段将文件写入我的 D: 驱动器,该驱动器无法(也不应该)从 Internet 获得。据我所知,有两个选项:
将照片存储在我的项目(专用于 Assets 的文件夹)中的/public 文件夹下。参见这里:http://www.playframework.org/documentation/2.0/Assets
编写我自己的 Controller ,从我的驱动器中提供来自自定义位置的图像。
对于1,我不确定这是否是 Assets 的目的。 对于2,我不知道如何编写这样的 Controller 。
最佳答案
简单的例子是
def index = Action {
Ok.sendFile(new java.io.File("/tmp/fileToServe.pdf"))
}
https://www.playframework.com/documentation/2.4.x/ScalaStream#Serving-files 有“服务文件”部分这解释了如何提供文件
关于scala - 如何使用 Scala 在 Play!2 中提供上传的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11451246/