我有一个Web UI,它接受一个上传为
val inFile = new File("resources/sample.xml")
我的问题是我需要将此传递给接受FileItem作为参数的函数。我收到类型不匹配错误。我如何将其更改为FileItem?我看过几篇文章,但都没有。我想知道是否甚至可以从File转换为FileItem。我也尝试过使用
val fileItem = new DiskFileItem("payloadFile", "plain/text", false, "Payload_FileItem", availableBytes, inFile).asInstanceOf[org.scalatra.servlet.FileItem]
但仍有错误:
java.lang.ClassCastException: org.apache.commons.fileupload.disk.DiskFileItem cannot be cast to org.scalatra.servlet.FileItem
我也尝试过使用inputStreams,但不知道接下来要做什么来从流转换为FileItem(或者甚至可能)。
val inputStream = getSystemClassLoader.getResourceAsStream("resources/sample.xml")
希望任何人都可以提供帮助。感谢。
答案 0 :(得分:0)
我认为这里有很多混乱;因为实际上有两个类 - apache,但是那个scala框架有自己的版本的东西。
请参阅here - FileUploadSupport.scala定义其拥有类
case class FileItem(part: Part) {
所以看起来你实际上可以直接创建该类的实例 - 如果你设法计算 part 参数的含义。
我的想法得到答案 - 计算该Part参数的全名;然后看看你是否可以使用这些知识从那里直接实例化org.scalatra.servlet.FileItem的这样一个实例。