首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Scala将文件转换为FileItem

使用Scala将文件转换为FileItem
EN

Stack Overflow用户
提问于 2017-04-04 10:01:04
回答 1查看 408关注 0票数 0

我有一个web,它接受上传为scalatra.servlet.FileItem的文件,并传递给几个函数,这些函数对上传的文件做一些事情。这是正常工作的。现在,我需要对这个特性进行junit测试。通过这个junit测试,该文件不再需要上传。我只需要从某个地方读出来。

代码语言:javascript
复制
val inFile = new File("resources/sample.xml")

我的问题是,我需要将它传递给接受FileItem作为参数的函数。我得到了一个类型错配错误。如何将此更改为FileItem?我看过几篇文章,但都没有用。我想知道是否有可能从文件转换为FileItem。我也试过用

代码语言:javascript
复制
val fileItem = new DiskFileItem("payloadFile", "plain/text", false, "Payload_FileItem", availableBytes, inFile).asInstanceOf[org.scalatra.servlet.FileItem]

但这还是有错误的:

代码语言:javascript
复制
java.lang.ClassCastException: org.apache.commons.fileupload.disk.DiskFileItem cannot be cast to org.scalatra.servlet.FileItem

我也尝试过使用inputStreams,但不知道接下来要做什么才能从流转换为FileItem (甚至可能)。

代码语言:javascript
复制
val inputStream = getSystemClassLoader.getResourceAsStream("resources/sample.xml")

希望有人能帮上忙。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-04-04 10:42:10

我认为这里有很多混乱之处;因为实际上有两个类--Apache类,但是那个scala框架有它自己的版本。

请参见这里 - FileUploadSupport.scala定义它的自有类。

代码语言:javascript
复制
case class FileItem(part: Part) {

因此,看起来您实际上可以直接创建该类的实例--如果您能够理解部件参数是关于什么的话。

我的想法是给出答案--给出这个部件参数的全名;然后看看您是否可以使用这些知识直接从那里实例化这样一个org.scalatra.servlet.FileItem实例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43204032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档