Вопрос

Я использую 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, Windows не может установить разрешения на стороне клиента.Если это веб-браузер (Safari/Firefox), он, вероятно, работает с настройками по умолчанию.Поэтому знание того, что запрашивает файл с Mac, может помочь получить правильный ответ.

Другие советы

Для этого может быть несколько причин, но я предполагаю, что в платформе Mac есть ошибка.Будучи на Mac, я предполагаю, что вы используете моно, поэтому свяжитесь с группой Mono и узнайте, что они скажут.Также у них довольно хороший Форум посмотрим, что они скажут.

Наконец, если вы получаете ошибки с использованием «content-disposition», не используйте «content-disposition» и используйте тот способ, которым он работает.

Я не знаю, имеет ли это какое-либо отношение к DotNetZip, но сейчас существует более поздняя версия библиотеки — v1.7.Он выполняет шифрование AES, ZIP64 и многое другое.А версия v1.8 имеет несколько новых интересных функций Seelctor, а также замену GZipStream.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top