簡體   English   中英

無法使用DotNetZip 1.9從HttpInputStream中讀取zip文件

[英]Cannot read zip file from HttpInputStream using DotNetZip 1.9

我正在嘗試使用DotNetZip 1.9在Asp.Net MVC 3中讀取上傳的zip文件。我已經驗證我收到的HttpPostedFileBase對象很好。 我可以將它保存到磁盤然后解壓縮。 但是,首先保存到磁盤似乎很浪費,因為我應該能夠直接從內存中解壓縮。

從MSDN,HttpPostedFileBase.InputStream屬性“獲取一個Stream對象,該對象指向上傳的文件以准備讀取文件的內容”。

根據DetNetZip的引用,ZipFile.Read()可以接受Stream對象。 所以我試了一下,DotNetZip拋出BadReadException。 我附加了顯示問題的屏幕截圖。

從HttpInputStream解壓縮的問題 從HttpInputStream解壓縮的問題

InputStream的值,Length與上傳的zip文件的值相匹配 InputStream的值,Length與上傳的zip文件的值相匹配

幫助任何人? 謝謝

我懷疑ZipFile.IsZipFile方法調用已經提升了您的InputStream位置,當您稍后嘗試讀取它時,它不再是有效的zip文件,因為流位置已移動。 試着堅持一個

fileData.InputStream.Position = 0;

在驗證流是有效的zip文件之后,就在您嘗試讀取它的using子句之前。 這將在開始時重置流位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM