2009-03-03 11 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

ありがとう、私は、zipが私のWindows Webサーバー上で生成されることを明確にする必要があります。この問題は、Macユーザーがダウンロードした場所で発生します。 – frosty

0

DotNetZipと何か関係があるのか​​どうかわかりませんが、現在のライブラリのバージョンがv1.7になっています。それはAES暗号化、ZIP64、他のものの束をします。 そして、v1.8のバージョンには、新しいクールなSeelctor機能とGZipStreamの代わりがあります。

関連する問題