Scalatra - 文件上传 - 文件大小太大错误,如果不是

时间:2016-11-28 14:45:07

标签: scala file-upload scalatra

我尝试使用Scalatra版本上传文件:2.4.0。

我尝试上传的文件只有181个字节,但我不断收到文件太大的错误信息,但它不是太大。一切都在编译,IntelliJ没有显示任何错误。当我上传时,它会显示错误页面,我希望说“"文件大小太大!”#34;。

我已根据此处的Scalatra指南设置了MultipartConfig:Scalatra File Upload

现在我只是想让上传工作,所以我只是打印到控制台,我将在请求中使用该文件。

我在这里缺少什么?

表格

<form action="/upload" method="post" enctype="multipart/form-data">
  <div class="form-group">
    <label class="btn btn-primary" for="file-selector">
      <input id="file-selector" name="the-file" type="file" style="display:none;" onchange="$('#upload-file-info').html($(this).val());" />
        Choose File
    </label>
    <span class='label label-info' id="upload-file-info"></span>
  </div>
  <button type="submit" class="btn btn-primary">Upload</button>
</form>

的Servlet

trait UploadServlet extends BaseServlet with FileUploadSupport {

  error {
    case e:
      SizeConstraintExceededException => {
      RequestEntityTooLarge("File size too large!")
    }

  post("/upload") {
    Console.println("Yo Yo Ma")
  }

}

Web应用启动器(WebappLauncher.scala)

myApp.webapp.servletsMap.foreach { case (path, servlet) =>
  val holder = context.addServlet(servlet, path + "*")
  holder.getRegistration.setMultipartConfig(
    MultipartConfig(
      maxFileSize       = Some(5 * 1024 * 5000),
      fileSizeThreshold = Some(5 * 1024 * 5000)).toMultipartConfigElement)
}

1 个答案:

答案 0 :(得分:-1)

试试这个:

trait UploadServlet extends ScalatraServlet with FileUploadSupport with FlashMapSupport {
  configureMultipartHandling(multipartConfig.copy(maxFileSize = Some(50*1024*1024)))
  ...
}