Question

J'utilise DotNetZip et j'ai constaté des problèmes de permission sur Mac. Cela semble se produire uniquement lorsque j'utilise la disposition du contenu.

C'est à dire si je viens de l'enregistrer sur le disque

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

mais si j'utilise la disposition du contenu de la même manière, sur mac, les autorisations des utilisateurs sont refusées (le groupe de tout le monde n'est pas coché)

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

using (ZipFile zip = new ZipFile(Response.OutputStream))
{
    // 
}
Était-ce utile?

La solution

Vous pouvez essayer de remplacer ApplicationType par "application / octet-stream". Croyez-le ou non, cela a déjà résolu des problèmes pour moi. Cela vaut la peine quand même.

La principale question est de savoir comment le fichier est demandé du côté du Mac. S'il s'agit d'un serveur Web Windows proposant le fichier, Windows ne peut pas définir les autorisations côté client. S'il s'agit d'un navigateur Web (Safari / Firefox), ils ne fonctionnent probablement que sur les paramètres par défaut. Donc, savoir ce qui demande le fichier sur Mac pourrait aider à obtenir la bonne réponse.

Autres conseils

Il pourrait y avoir plusieurs raisons à cela, mais j’imagine qu’il ya un bogue dans le framework sur le Mac. Étant sur un Mac, je suppose que vous utilisez mono, contactez le groupe Mono et voyez ce qu’ils ont à dire. En outre, ils ont un assez bon forum pour voir ce qu'ils ont à dire.

Enfin, si vous rencontrez des erreurs lors de l'utilisation de "contenu-disposition", n'utilisez pas "contenu-disposition" et utilisez son mode de fonctionnement.

Je ne sais pas si cela a quelque chose à voir avec DotNetZip, mais il existe une version plus récente de la bibliothèque - v1.7. Il fait le cryptage AES, ZIP64, un tas d'autres choses. Et la version v1.8 présente quelques nouvelles fonctionnalités intéressantes de Seelctor, ainsi qu'un remplacement pour GZipStream.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top