2009-03-03 8 views
0

Ich benutze DotNetZip und habe festgestellt, dass ich Erlaubnis Probleme auf Mac bekommen. Dies scheint nur zu geschehen, wenn ich die Inhaltsdisposition verwende.DotNetZip: Erstellen von Zip mit C# Berechtigungen Problem

dh, wenn ich es nur auf der Festplatte speichern

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

aber wenn ich wie so zufrieden Disposition verwenden, auf dem Mac die Benutzerberechtigungen verweigert werden (jeder Gruppe nicht aktiviert ist)

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

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

Antwort

1

Sie könnten versuchen, den ApplicationType zu "application/octet-stream" zu ändern. Ob Sie es glauben oder nicht, das hat Probleme für mich vorher behoben. Es ist trotzdem einen Versuch wert.

Die größte Frage ist, wie wird die Datei von der Mac-Seite angefordert? Wenn ein Windows-Webserver die Datei anbietet, kann Windows die Berechtigungen auf der Clientseite nicht festlegen. Wenn es sich um einen Webbrowser (Safari/Firefox) handelt, werden wahrscheinlich nur die Standardeinstellungen verwendet. Zu wissen, was die Datei vom Mac anfordert, könnte helfen, die richtige Antwort zu erhalten.

0

Es konnte mehrere Gründe dafür sein, aber meine Vermutung wäre, dass es einen Fehler im Framework auf dem Mac gibt. Da ich auf einem Mac bin, nehme ich an, dass Sie Mono benutzen, also kontaktieren Sie die Mono-Gruppe und sehen Sie, was sie zu sagen haben. Auch haben sie eine ziemlich gute forum sehen, was sie zu sagen haben.

Schließlich, wenn Sie Fehler mit "Content-Disposition" erhalten, dann verwenden Sie nicht "Content-Disposition", und verwenden Sie die Art, wie es funktioniert.

+0

danke, ich sollte klarstellen, dass die Zip auf meinem Windows-Webserver generiert werden. Dieses Problem tritt auf, wenn sie von Mac-Benutzern heruntergeladen werden. – frosty

0

Ich weiß nicht, ob es etwas mit DotNetZip zu tun hat, aber es gibt jetzt eine neuere Version der Bibliothek - v1.7. Es macht AES-Verschlüsselung, ZIP64, eine Menge anderer Sachen. Und die v1.8 Version hat einige neue coole Selector Features, sowie einen Ersatz für GZipStream.

Verwandte Themen