Playframework [Scala]:如何在视图中显示图像文件/采用类型参数的 [error] 类 MultipartFormData

第一站

我想在视图中显示上传的文件;但是我不知道该怎么做。

首先我试图传递multipartFormData给视图文件,但发生了错误:

类 MultipartFormData 接受类型参数

问题是以下几行:

@(user:models.User,file:MultipartFormData,fileOption:Option[Long])(隐式请求:RequestHeader,messages:Messages,webJarAssets:WebJarAssets)

在我的控制器类 ( FileUploadController.scala) 中,我有以下内容:

  type FilePartHandler[A] = FileInfo => Accumulator[ByteString, FilePart[A]]

  def handleFilePartAsFile: FilePartHandler[File] = {
    case FileInfo(partName, filename, contentType) =>
      val attr = PosixFilePermissions.asFileAttribute(util.EnumSet.of(OWNER_READ, OWNER_WRITE))
      val path: Path = Files.createTempFile("multipartBody", "tempFile", attr)

      if (Files.notExists(path)) Files.createFile(path)

      val file = path.toFile

      val fileSink: Sink[ByteString, Future[IOResult]] = FileIO.toPath(path)
      val accumulator: Accumulator[ByteString, IOResult] = Accumulator(fileSink)
      accumulator.map {
        case IOResult(count, status) =>
          logger.info(s"count = $count, status = $status")
          FilePart(partName, filename, contentType, file)
      }
  }

  def upload = silhouette.SecuredAction.async(parse.multipartFormData(handleFilePartAsFile)) { implicit request =>

    val fileOption = request.body.file("picName").map {

      case FilePart(key, filename, contentType, file) =>
        logger.info(s"key = ${key}, filename = ${filename}, contentType = ${contentType}, file = $file")

        val data = operateOnTempFile(file)

    FileUploadFormSupport.picsave(key, filename, contentType, file)

        data

    }

    Future.successful(Ok(views.html.fileUpload2(request.identity, request.body.file("picName"), fileOption)))
    }
}

在我的视图文件 ( fileupload2.scala.html) 中,我有以下内容:

@(user: models.User, file: MultipartFormData, fileOption: Option[Long])(implicit request: RequestHeader, messages: Messages, webJarAssets: WebJarAssets)

@import b3.inline.fieldConstructor

@main(Messages("fileupload.title"), Some(user)) {

   <div class="user col-md-6 col-md-offset-3">
        <div class="row data">
            <div class="col-md-12">
                <div class="row">

                <img src="file">
                    <p class="col-md-6"><strong>@Messages("file.name"):</strong></p>
                    <p class="col-md-6">file size is @fileOption.getOrElse("None")</p>
                </div>
            </div>
        </div>
    </div>

}
第一站

解决了。

当修改为 MultipartFormData[_] 时,类型不匹配;

[错误] 发现:选项[play.api.mvc.MultipartFormData.FilePart[java.io.File]]

[错误] 需要:play.api.mvc.MultipartFormData[_]

发生。

那么我应该在视图中这样写:

@(文件:选项[MultipartFormData.FilePart[java.io.File]])

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为Scala和Playframework中的嵌套类创建QueryStringBindable

来自分类Dev

在Scala和Playframework中为嵌套类创建QueryStringBindable

来自分类Dev

使用文件数组上传MultipartFormData

来自分类Dev

Scala Playframework发送文件

来自分类Dev

在Scala中创建一个通过Playframework Guice独立进行DI的类的实例

来自分类Dev

Playframework:如何将JSON绑定到包含地图的case类?

来自分类Dev

无法使用PlayFramework导入Java类

来自分类Dev

无法使用PlayFramework导入Java类

来自分类Dev

如何扩展Error类?

来自分类Dev

在Play Framework的MultipartFormData中实际完成文件上传时

来自分类Dev

如何在Swift中的multipartFormData中添加超过2个文件参数

来自分类Dev

PlayFramework-如何上传文件/图像

来自分类Dev

Playframework(Scala):传递用户模型

来自分类Dev

PlayFramework静态文件的Nginx配置

来自分类Dev

在Playframework视图中调用JavaScript函数

来自分类Dev

如何隐藏playframework会话的值?

来自分类Dev

Playframework-> Twirl scala显示简单形式

来自分类Dev

如何在 ViewController2.swift 类的 overCurrentContext 视图中显示图像?

来自分类Dev

MultipartFormData(地图(文件名->列表(abcd)),列表(),列表(),列表())标量

来自分类Dev

如何使用Alamofire上载带有身份验证的MultipartFormData

来自分类Dev

PlayFramework 2.2 Scala关闭WebSocket连接

来自分类Dev

为什么Scala Playframework不导入库

来自分类Dev

在Scala中使用PlayFramework进行Json验证

来自分类Dev

Phantom vs Quill for Playframework(Scala)和Cassandra

来自分类Dev

Scala,PlayFramework,Mockito,ExecutionContext为null

来自分类Dev

在PlayFramework中获取Scala的模板循环索引

来自分类Dev

Scala通用序列化器PlayFramework

来自分类Dev

Phantom vs Quill for Playframework(Scala)和Cassandra

来自分类Dev

Scala PlayFramework 中的 Session.getAttribute("id)

Related 相关文章

  1. 1

    为Scala和Playframework中的嵌套类创建QueryStringBindable

  2. 2

    在Scala和Playframework中为嵌套类创建QueryStringBindable

  3. 3

    使用文件数组上传MultipartFormData

  4. 4

    Scala Playframework发送文件

  5. 5

    在Scala中创建一个通过Playframework Guice独立进行DI的类的实例

  6. 6

    Playframework:如何将JSON绑定到包含地图的case类?

  7. 7

    无法使用PlayFramework导入Java类

  8. 8

    无法使用PlayFramework导入Java类

  9. 9

    如何扩展Error类?

  10. 10

    在Play Framework的MultipartFormData中实际完成文件上传时

  11. 11

    如何在Swift中的multipartFormData中添加超过2个文件参数

  12. 12

    PlayFramework-如何上传文件/图像

  13. 13

    Playframework(Scala):传递用户模型

  14. 14

    PlayFramework静态文件的Nginx配置

  15. 15

    在Playframework视图中调用JavaScript函数

  16. 16

    如何隐藏playframework会话的值?

  17. 17

    Playframework-> Twirl scala显示简单形式

  18. 18

    如何在 ViewController2.swift 类的 overCurrentContext 视图中显示图像?

  19. 19

    MultipartFormData(地图(文件名->列表(abcd)),列表(),列表(),列表())标量

  20. 20

    如何使用Alamofire上载带有身份验证的MultipartFormData

  21. 21

    PlayFramework 2.2 Scala关闭WebSocket连接

  22. 22

    为什么Scala Playframework不导入库

  23. 23

    在Scala中使用PlayFramework进行Json验证

  24. 24

    Phantom vs Quill for Playframework(Scala)和Cassandra

  25. 25

    Scala,PlayFramework,Mockito,ExecutionContext为null

  26. 26

    在PlayFramework中获取Scala的模板循环索引

  27. 27

    Scala通用序列化器PlayFramework

  28. 28

    Phantom vs Quill for Playframework(Scala)和Cassandra

  29. 29

    Scala PlayFramework 中的 Session.getAttribute("id)

热门标签

归档