5

我正在客户端使用 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")
  }

上传工作正常,即文件正确保存foo.jpg/somepath/. 但它也抛出异常:

Path(/somepath/foo.jpg) exists but replace parameter is false

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

4

2 回答 2

5

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

无论如何,错误消息已经给了你一个提示。查看案例类的文档。TemporaryFilemoveTo方法可以有2个参数;第二个默认为false并指示您要替换现有文件。

所以,简而言之,而不是

request.body.moveTo(new File("/somepath/foo.jpg"))

你写

request.body.moveTo(new File("/somepath/foo.jpg"), true)
于 2012-11-12T12:47:26.287 回答
4

moveTo() API doc中,要替换文件,您应该使用:

request.body.moveTo(new File("/somepath/foo.jpg"), true)
于 2012-11-12T12:45:07.283 回答