2012-04-23 77 views
0

客户端应该上传.ppt文件,服务器应该保存并显示它。我可以将上传的文件存储在FileInputStream对象中吗?

我确实将(request.getContent())存储在DatainputStream对象中。

DataInputStream pptFile = new DataInputStream(request.getInputStream()); 

但我不能这种类型的变量(DataInputStream类)分配到从库(org.apache.poi.hslf.usermodel.SlideShow)的对象。

DataInputStream pptFile = new DataInputStream(request.getInputStream()); 
SlideShow ppt = new SlideShow (pptFile); 

我需要使用pptFile作为一个FileInputStream变量,我知道我可以从转换到的FileInputStream DataInputStream所容易,但我怎么能反其道而行之? (从DataInputStream转换到FileInputStream)

或 至少我可以将(request.getContent)存储在FileInputStream中?

+0

也许库需要从文件中加载数据......所以将它存储在一个文件中并在其上创建FileInputStream。 ;) – 2012-04-23 06:28:53

+0

根据[documentation here](http://poi.apache.org/apidocs/org/apache/poi/hslf/usermodel/SlideShow.html),它只需要一个'InputStream'和一个'DataInputStream '是一个'InputStream'。试图使用上面的代码时出现错误吗? – trutheality 2012-04-23 06:34:27

+0

@ trutheality。是的,如果我将一个DataInputStream对象分配给SlideShow对象,我会收到错误。 – Lujain 2012-04-23 06:41:37

回答

2

DataInputStream不是您的要求的适当类(更仔细地阅读它的Javadoc)。

您可以将请求存储在ByteArrayInputStream中,然后将该请求提供给SlideShow对象。这可能会占用大量内存(PPT文件的大小可能会达到很多兆字节),但请首先完成此项工作。然后,调查使用临时文件来保存上载,而不是将其保存在内存中。

相关问题