当前位置: 首页 > 知识库问答 >
问题:

上传playframework中的表单错误413请求实体到大型

梁丘威
2023-03-14
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"
        )
      }
  }
GET     /admin/carro/upload         controllers.AdminCarro.upload
@import helper._


@main(new Main("Car Dealers", "Compra e venda de carros", "logo.png", "carro, compra, venda")) {
    <div class="container">
    @form(routes.AdminCarro.upload, 'enctype -> "multipart/form-data") {

        <input type="file" name="picture">

        <p>
            <input type="submit">
        </p>

    }
    </div>
}

共有1个答案

尚河
2023-03-14

我不确定你这样做是想达到什么目的。为什么不使用get来显示视图,而使用post来显示上传:

def uploadView = Action.async { request => 
   Future.successful(Ok(views.html.uploadForm))
}

def upload = Action(parse.multipartFormData).async { 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"))
        Future.successful(Ok("File uploaded"))
      }.getOrElse {
        Future.successful(Redirect(routes.Application.index).flashing(
          "error" -> "Missing file"
        ))
      }
  }

和路由文件:

  GET     /admin/carro/upload         controllers.AdminCarro.uploadView
  POST    /admin/carro/upload         controllers.AdminCarro.upload

另外,如果上传的是大文件,则可以为所有解析器指定最大值:

parsers.text.maxLength=5242880
Action(parse.text(maxLength = 1024 * 10))
 类似资料:
  • 我已经用编写了一个WCF服务。NET 4.0,它托管在我的Windows 7Ultimate系统上,带有IIS 7.5。其中一个服务方法有一个'object'作为参数,我正试图发送一个包含图片的字节[]。只要这张图片的文件大小小于约48KB,一切正常。但是,如果我试图上传更大的图片,WCF服务将返回一个错误:

  • 我已在etc/nginx/nginx上将客户机的最大机身尺寸更改为100M。在etc/php5/fpm/php上,我已经将upload_max_文件大小更改为100M。在etc/php5/fpm/php上将ini和post_max_大小设置为100M。ini和我仍然无法让文件上传工作。 还有其他人遇到过这个问题吗?

  • 对工作或替代解决方案有什么想法吗?

  • 问题内容: 我收到express的以下错误: 我正在使用meanstack。我的express.js中有以下使用声明 在提琴手中,我可以看到content-length标头,其值为:1078702 我相信这是八位字节,这是1.0787兆字节。 我不知道为什么express不让我发布以前在另一个未使用均值堆栈项目结构的express项目中发布的json数组。 问题答案: 最近我遇到了相同的错误,发现

  • 我收到以下错误: 我在用MeanStack。我的Express.js中有以下use语句 在fiddler中,我可以看到值为:1078702的content-length头 我相信这是以八位字节为单位的,这是1.0787兆字节。 我不知道为什么express不允许我在另一个express项目中发布我之前发布的json数组,该项目没有使用mean stack项目结构。