views:

466

answers:

3

I am using DotNetZip and have noticed that i am getting permission issues on Mac's. This seems to only occur when i use content disposition.

ie if i just save it to disk

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

but if i use content disposition like so, on mac the user permissions are denied ( everyone group is unchecked)

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

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

There could be several reasons for this but my guess would be that there is a bug in the framework on the mac. Being on a Mac I assume you are using mono so contact the Mono group and see what they have to say. Also they have a fairly good forum see what they have to say.

Finally if your getting errors using "content-disposition", then don't use "content-disposition", and use the way it works.

Bob The Janitor
thanks, i should clarify that the the zip are generated on my Windows webserver. This issue occurs where they are download by mac users.
frosty
A: 

I don't know if it has anything to do with DotNetZip, but there is a later version of the library out now - v1.7. It does AES encryption, ZIP64, a bunch of other stuff. And the v1.8 version has some new cool Seelctor features, as well as a replacement for GZipStream.

Cheeso
+1  A: 

You could try changing the ApplicationType to "application/octet-stream". Believe it or not that has fixed problems for me before. It's worth a shot anyway.

The biggest question is how is the file being requested from the Mac's side? If it's a Windows web server offering up the file, Windows can't set the permissions on the client side. If it's a web browser (Safari/Firefox) they're probably just running on the default settings. So knowing what is requesting the file from the Mac could help get the right answer.

Joshua