我正在Scalatra中开发文件上传网络应用程序。在我的用例中,我想检查提交的请求是否包含附件。
以下是我的代码:
val (profilePicByteStream: Array[Byte], contentType:String, fileName) = fileParams.get("profilePic") match {
case Some(file) => (file.get(), file.contentType.getOrElse("application/octet-stream"), file.name)
case None => (Array(), "", null)
}
当提交的请求中有附件时,它正常工作。如何处理无效请求。
如果是非附件,则会抛出错误:
([Ljava.lang.Object;@16837c0b,) (of class scala.Tuple2)
scala.MatchError: ([Ljava.lang.Object;@16837c0b,) (of class scala.Tuple2)
在附件和没有附件的两种情况下,它都会转到某些(文件)案例。
有人可以建议如何处理无效案件吗?
答案 0 :(得分:0)
你有没有考虑做一个" map"而不是匹配?
fileParams.get("profilePic").map(file => (file.get(), file.contentType.getOrElse("application/octet-stream"), file.name))
这适用于上传文件的情况,并且在没有任何内容的情况下会返回None