使用Play 2.0上传Ajax文件:存在但是replace参数为false

Ota*_*edo 5 scala file-upload playframework-2.0

我正在客户端使用Valum实现Ajax文件上传并播放!服务器端2.0.4.我的动作方法如下所示:

  def ajaxup = Action(parse.temporaryFile) { request =>
    try {
      request.body.moveTo(new File("/somepath/foo.jpg"))
    } catch {
      case e: Exception => Logger.error(e.getMessage)
    }
    Ok("File uploaded")
  }
Run Code Online (Sandbox Code Playgroud)

上传工作正常,也就是文件名称下正确保存foo.jpg/somepath/.但它也引发了异常:

Path(/somepath/foo.jpg) exists but replace parameter is false
Run Code Online (Sandbox Code Playgroud)

我怎么能避免这种情况?我是否需要在我正在创建的文件上设置任何属性?

Car*_*ten 5

我假设您要覆盖现有文件/somepath/foo.jpg.如果您不这样做,只需检查该文件是否已存在.

无论如何,错误消息已经给你一个提示.看文档TemporaryFile情况下类.该moveTo方法可以有2个参数; 第二个默认为false并表示您要替换现有文件.

所以,简而言之,而不是

request.body.moveTo(new File("/somepath/foo.jpg"))
Run Code Online (Sandbox Code Playgroud)

你写

request.body.moveTo(new File("/somepath/foo.jpg"), true)
Run Code Online (Sandbox Code Playgroud)