DotNetZip: создание zip с разрешением C # - PullRequest
0 голосов
/ 03 марта 2009

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

Ответы [ 3 ]

1 голос
/ 24 июля 2009

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

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

0 голосов
/ 05 марта 2009

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

0 голосов
/ 03 марта 2009

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

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

...