我尝试使用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)
}
答案 0 :(得分:-1)
试试这个:
trait UploadServlet extends ScalatraServlet with FileUploadSupport with FlashMapSupport {
configureMultipartHandling(multipartConfig.copy(maxFileSize = Some(50*1024*1024)))
...
}