繁体   English   中英

DotNetZip:使用C#权限问题创建zip

[英]DotNetZip: creating zip with C# permissions issue

我正在使用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无法在客户端设置权限。 如果是网络浏览器(Safari / Firefox),则可能只是在默认设置下运行。 因此,了解从Mac请求文件的内容可能有助于获得正确的答案。

可能有多种原因,但我的猜测是mac上的框架中存在错误。 在Mac上,我假设您正在使用Mono,因此请与Mono组联系,看看他们怎么说。 他们也有一个相当不错的论坛,看看他们怎么说。

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

我不知道它是否与DotNetZip有关,但是现在有一个更高版本的库-v1.7。 它执行AES加密,ZIP64和许多其他功能。 v1.8版本具有一些新的炫酷Seelctor功能,并替代了GZipStream。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM