2012-04-23 38 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文件的大小可能會達到很多兆字節),但請首先完成此項工作。然後,調查使用臨時文件來保存上載,而不是將其保存在內存中。

相關問題