ASP.NET Создает zip-файл для загрузки: сжатая заархивированная папка недопустима или повреждена

string fileName = "test.zip";
string path = "c:\\temp\\";
string fullPath = path + fileName;
FileInfo file = new FileInfo(fullPath);

Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.Buffer = true;
Response.AppendHeader("content-disposition", "attachment; filename=" + fileName);
Response.AppendHeader("content-length", file.Length.ToString());
Response.ContentType = "application/x-compressed";
Response.TransmitFile(fullPath);
Response.Flush();
Response.End();

Фактический zip-файл c:\temp\test.zip хорош, действителен, независимо от того, что Вы хотите назвать его. Когда я перешел в файл каталога c:\temp\ and double-click on the test.zip; это открывает право.

Моя проблема, кажется, только с загрузкой. Код выше выполняется без любой проблемы. Диалоговое окно загрузки файла представлено. Я могу, принял решение или сохранить или открыться. Если я пытаюсь открыть файл от диалогового окна, или сохранить его и затем открыть его. Я получаю следующее диалоговое сообщение:

Сжатая (заархивированная) Папка недопустима или повреждена.

Для Ответа. ContentType я попробовал:

application/x-compressed application/x-zip-compressed application/x-gzip-compresse application/octet-stream приложение/zip

Zip-файл создается с некоторым предшествующим кодом (что я уверен, хорошо работает из-за моей способности открыть созданный файл непосредственно), использование: Ionic.zip

http://www.codeplex.com/DotNetZip

5
задан Tushar Gupta - curioustushar 16 April 2014 в 07:22
поделиться

1 ответ

Это сработало. Я не знаю почему, но это сработало.

string fileName = "test.zip";
string path = "c:\\temp\\";
string fullPath = path + fileName;
FileInfo file = new FileInfo(fullPath);

Response.Clear();
//Response.ClearContent();
//Response.ClearHeaders();
//Response.Buffer = true;
Response.AppendHeader("Content-Disposition", "attachment; filename=" + fileName);
//Response.AppendHeader("Content-Cength", file.Length.ToString());
Response.ContentType = "application/x-zip-compressed";
Response.WriteFile(fullPath);
//Response.Flush();
Response.End();
23
ответ дан 18 December 2019 в 06:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: