Pregunta

Estoy usando DotNetZip y me he dado cuenta de que tengo problemas con los permisos de Mac. Esto parece ocurrir solo cuando uso la disposición de contenido.

es decir, si simplemente lo guardo en el disco

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

pero si uso la disposición de contenido como tal, en mac se deniegan los permisos de usuario (todos los grupos no están seleccionados)

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

using (ZipFile zip = new ZipFile(Response.OutputStream))
{
    // 
}
¿Fue útil?

Solución

Puede intentar cambiar el ApplicationType a " application / octet-stream " ;. Lo creas o no, eso me ha solucionado los problemas antes. Vale la pena intentarlo de todos modos.

La pregunta más importante es ¿cómo se solicita el archivo desde el lado de Mac? Si se trata de un servidor web de Windows que ofrece el archivo, Windows no puede establecer los permisos en el lado del cliente. Si se trata de un navegador web (Safari / Firefox), probablemente solo se estén ejecutando en la configuración predeterminada. Entonces, saber qué está solicitando el archivo de Mac podría ayudar a obtener la respuesta correcta.

Otros consejos

Podría haber varias razones para esto, pero mi conjetura sería que hay un error en el marco en el mac. Al estar en una Mac, asumo que estás usando mono, así que contacta al grupo Mono y ve lo que tienen que decir. También tienen un foro bastante bueno para ver qué tienen que decir.

Finalmente, si obtienes errores al usar " content-disposition " ;, entonces no uses " content-disposition " ;, y usa la forma en que funciona.

No sé si tiene algo que ver con DotNetZip, pero ahora hay una versión posterior de la biblioteca: v1.7. Hace cifrado AES, ZIP64, un montón de otras cosas. Y la versión v1.8 tiene algunas características nuevas y geniales de Seelctor, así como un reemplazo para GZipStream.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top