DotNetZip: создание zip с проблемой разрешений C#

Я использую 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))
{
    // 
}

person frosty    schedule 03.03.2009    source источник


Ответы (3)


Вы можете попробовать изменить ApplicationType на «application/octet-stream». Хотите верьте, хотите нет, но раньше у меня уже были проблемы. В любом случае стоит попробовать.

Самый большой вопрос, как файл запрашивается со стороны Mac? Если это веб-сервер Windows, предлагающий файл, Windows не может установить разрешения на стороне клиента. Если это веб-браузер (Safari/Firefox), он, вероятно, просто работает с настройками по умолчанию. Поэтому знание того, что запрашивает файл с Mac, может помочь получить правильный ответ.

person Joshua    schedule 24.07.2009

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

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

person Bob The Janitor    schedule 03.03.2009
comment
спасибо, я должен уточнить, что zip создается на моем веб-сервере Windows. Эта проблема возникает, когда они загружаются пользователями Mac. - person frosty; 03.03.2009

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

person Cheeso    schedule 05.03.2009