2012-05-26 2 views
0

Когда я использую следующий код для загрузки ZIP-файла, он работает. Однако, когда я пытаюсь открыть загруженный ZIP, я получаю сообщение «недопустимая сжатая папка». Когда я открываю ZIP в блокноте, я вижу, что он заполнен HTML.ZIP-загрузка содержит содержимое html

string fp = Server.MapPath("directory\\file.zip"); 
FileInfo file = new FileInfo(fp); 

if (file.Exists) 
{ 
    Response.ClearContent(); 
    Response.AddHeader("content-disposition","attachment; filename=" + file.Name); 
    Response.AddHeader("content-length", file.Length.ToString()); 
    Response.ContentType = "application/zip"; 
    Response.TransmitFile(file.FullName); 
    Response.End(); 
} 

Вопрос Я не могу показаться, чтобы исправить это, вероятно, связано это, когда я пытаюсь вручную ввести адрес файла (http://website.com/downloads/file.zip), я получаю редирект (http://website.com/login.aspx) даже при входе в систему как админ. Любые указатели в том, где искать, будем очень благодарны.

+0

Что представляет собой HTML? форма входа в систему? страница с ошибкой? или ... –

+0

Создает общую страницу ошибок. – Jesse

+0

и что сообщение об ошибке? –

ответ

1

Вместо использования Response.ClearContent() также используйте Response.ClearHeaders(), чтобы удалить все текущие заголовки, а также тело ответа.

Из MSDN, HttpResponse.ClearContent Method:

Метод ClearContent не проясняет информацию заголовка.

+0

Спасибо за отзыв! Однако это не решило мою проблему. – Jesse

+0

@Jesse - Вы проверяли содержимое HTML? Если это сообщение об ошибке, оно может иметь ключи. – Oded

Смежные вопросы