我正在使用DotNetZip,并注意到我在Mac上获得了许可问题。这似乎只发生在我使用内容处理时。

即如果我只是将其保存到磁盘

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小组,看看他们有什么要说的。他们还有一个相当不错的论坛,看看他们有什么要说的。

最后,如果您使用“content-disposition”获取错误,请不要使用“content-disposition”,并使用其工作方式。

我不知道它是否与DotNetZip有关,但现在有一个更高版本的库 - v1.7。它做AES加密,ZIP64,其他一些东西。 v1.8版本有一些新的酷Seelctor功能,以及GZipStream的替代品。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top