【问题标题】:Play framework with scala image upload server error带有 scala 图像上传服务器错误的播放框架
【发布时间】:2016-07-20 03:11:57
【问题描述】:

当我在 localhost 上传图片时,上传没有问题。 但是,当部署在服务器(digitalocean 上的 dokku)上时,服务器返回错误 500 并出现 NoSuchFile 异常。我的错误是什么?

def upload = Action(parse.multipartFormData) { request =>
      request.body.file("file").map { picture =>
         import java.io.File
         val filename = picture.filename
         val extension = Files.getFileExtension(filename)
         val contentType = picture.contentType
         Logger.warn(extension)
         val newFileName = s"${UUID.randomUUID}.$extension"
         val uniqueFile = new File(s"public/pictures/$newFileName")
         picture.ref.moveTo(uniqueFile)
         Ok(newFileName)
  }.getOrElse {
         Ok("error")
  }
}

错误日志:

@6oo5djflc - 内部服务器错误,用于 (POST) [/template/uploadLogo]

play.api.UnexpectedException:意外 异常[NoSuchFileException: /tmp/playtemp71801546008559360/multipartBody6913035116351905525asTemporaryFile -> public/pictures/1046fe85-d910-41f4-a52f-53a6f2506d76.png]

【问题讨论】:

  • 目标目录是否存在?此外,使用您的公共目录(或应用程序目录中的任何其他目录)来存储上传的文件是一个坏主意。下次部署应用程序的新版本时会发生什么?
  • 是的,我将文件上传方法更改为 amazon s3

标签: scala playframework image-uploading dokku


【解决方案1】:

对于那些在这里结束的人,在new File(..) 的路径前添加application.root 解决了我的问题,即

new File(s"${application.path}/the_actual_filename.jpg")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多