質問

DotNetZipを使用していますが、Macで許可の問題が発生していることに気付きました。これは、コンテンツの処理を使用する場合にのみ発生するようです。

ieディスクに保存した場合

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

しかし、このようにコンテンツの処理を使用すると、Macではユーザーのアクセス許可が拒否されます(すべてのグループがチェックされません)

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

using (ZipFile zip = new ZipFile(Response.OutputStream))
{
    // 
}
役に立ちましたか?

解決

ApplicationTypeを「application / octet-stream」に変更してみてください。信じられないかもしれませんが、それは私にとって以前に問題を修正しました。とにかく一見の価値があります。

最大の問題は、ファイルがMac側からどのように要求されているかということです。ファイルを提供するWindows Webサーバーの場合、Windowsはクライアント側でアクセス許可を設定できません。 Webブラウザ(Safari / Firefox)の場合、おそらくデフォルト設定で実行されているだけです。したがって、Macにファイルを要求しているものを知ることで、正しい答えを得ることができます。

他のヒント

これにはいくつかの理由が考えられますが、Macのフレームワークにバグがあると思います。 Macを使用している場合は、Monoを使用していると思われるので、Monoグループに連絡して、彼らの意見を確認してください。また、彼らはかなり良いフォーラムを持っているので、彼らが言っていることを見ることができます。

最後に" content-disposition"を使用してエラーが発生した場合は、" content-disposition"を使用せず、その方法を使用します。

これがDotNetZipと関係があるかどうかはわかりませんが、現在ライブラリの新しいバージョンであるv1.7があります。 AES暗号化、ZIP64、その他多くのことを行います。 また、v1.8バージョンには、GZipStreamに置き換わるだけでなく、いくつかの新しいクールなSeelctor機能があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top