2009-03-03 18 views
0

我正在使用DotNetZip並注意到我在Mac上獲得許可問題。這似乎只發生在我使用內容處置。DotNetZip:使用C#權限問題創建zip

也就是說,如果我只是將它保存到磁盤

using (ZipFile zip = new ZipFile(@"C:\zip\temp.zip")) 
{ 
    // this works fine 
} 

,但如果我使用的內容部署像這樣,在Mac用戶權限被拒絕(Everyone組選中)

Response.ContentType = "application/zip"; 
Response.AddHeader("content-disposition", "filename=" + filename); 

using (ZipFile zip = new ZipFile(Response.OutputStream)) 
{ 
    // 
} 

回答

1

您可以嘗試將ApplicationType更改爲「application/octet-stream」。相信與否,這對我來說已經解決了問題。無論如何,這是值得的。

最大的問題是如何從Mac的一方請求文件?如果它是提供文件的Windows Web服務器,則Windows無法在客戶端設置權限。如果它是一個網頁瀏覽器(Safari/Firefox),它們可能只是在默認設置下運行。因此,瞭解什麼是從Mac請求文件可以幫助獲得正確的答案。

0

有可能有幾個原因,但我的猜測是在Mac上的框架中存在一個錯誤。在Mac上我假設你使用單聲道,所以請聯繫Mono小組,看看他們有什麼要說的。他們還有一個相當不錯的forum看他們有什麼要說的。

最後,如果您使用「content-disposition」獲取錯誤,那麼請勿使用「content-disposition」,並使用其工作方式。

+0

謝謝,我應該澄清,我的Windows Web服務器上生成的壓縮。 Mac用戶下載它們時會發生此問題。 – frosty 2009-03-03 16:19:54

0

我不知道它是否與DotNetZip有任何關係,但現在有一個更高版本的庫 - v1.7。它做AES加密,ZIP64,一堆其他的東西。 v1.8版本有一些新的酷的Seelctor功能,以及GZipStream的替代品。