首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用Scala在Play!2中提供上传的文件?

如何使用Scala在Play!2中提供上传的文件?
EN

Stack Overflow用户
提问于 2012-07-12 19:52:18
回答 2查看 12.2K关注 0票数 16

我正在尝试允许用户将照片上传到服务器,然后查看它们。上载按照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:驱动器,该驱动器不能(也不应该)从互联网上获得。据我所知,有两个选项:

  1. 将照片存储在我的项目(专用于资产的项目)中的/public文件夹下。请看这里:http://www.playframework.org/documentation/2.0/Assets
  2. Write我自己的控制器,从我的驱动器中从自定义位置伺服图像。

对于1,我不确定这是否是资产的目的。对于2,我不知道如何编写这样的控制器。

EN

回答 2

Stack Overflow用户

发布于 2012-08-11 02:07:28

这个简单的例子是

def index = Action {
  Ok.sendFile(new java.io.File("/tmp/fileToServe.pdf"))
}

https://www.playframework.com/documentation/2.4.x/ScalaStream#Serving-files上有一个"Serving files“部分,它解释了如何提供文件

票数 18
EN

Stack Overflow用户

发布于 2013-01-29 18:32:48

您可以添加如下所示的新路由:

GET     /myFiles/*file               controllers.Assets.at(path="/tmp", file)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11451246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档