Имам приятел, който изпитва проблеми при тестване на моя уебсайт, който предоставя експортиране на CSV за отчет. Той казва, че CSV се извежда на екрана и не се създава файл.
Работи отлично на моите настройки за IIS7, Vista и IE7. В момента не мога да получа повече подробности, но бих искал поне да попитам: по-долу ли е кодът ми за изпращане на CSV, за да бъде независим браузър / версия?
Response.Clear();
Response.Buffer = true;
Response.ContentType = "text/csv";
string fileName = GetExportFileName();
Response.AddHeader("Content-Disposition", "filename=" + fileName);
dt.WriteCsv(Response.Output, false);
Response.End();
Създавам filename, за да включа дата /
разделители, които може да причинят проблем, но това не се отразява на моята машина и /
автоматично се заменя с _
.
Отговори:
1 за отговор № 1Аз също използвах
Response.AddHeader("content-disposition", "attachment;filename=FileName.csv");
която добавя текста на "прикачения файл". Можете да опитате това, за да видите дали това има някакво значение за вашия приятел.
1 за отговор № 2
В IE6 е известен проблем, който не поддържа правилно мета маркера за разположение на съдържанието и има някои gotchas за това как да се съставят различните мета тагове.
Този линк от Скот Ханселман подробно описва всичко по въпроса.
за разбирането Масимо
1 за отговор № 3
Много късно за купона много тук, така че това е повече за всеки, който се сблъска с този въпрос по-късно. Това е във връзка с цитирането „Няма HTTP заглавие да принуди IE6 да предложи изтегляне."
В PHP имам заглавките, зададени като следното за IE, за да се покаже бутон „Запазване“, а не само да изтеглите файла - или да покажете файла в прозореца на браузъра.
Response.AddHeader("X-Download-Options", "noopen");
Response.AddHeader("X-Content-Type-Options", "nosniff");
Заглавките X се използват, за да покажат, че е нестандартен тип заглавие. Работи в IE6.
0 за отговор № 4
Единственият сигурен начин да накарате IE да поиска да изтеглите, е компресирането на CSV файла (т.е. file.csv.zip или file.zip).
виждам
- http://blogs.msdn.com/ie/archive/2005/02/01/364581.aspx
- Работа с типове MIME в Internet Explorer
- MIME Detection в Internet Explorer
Няма HTTP заглавие да принуди IE6 да предложи изтегляне. Това важи особено за текстовото съдържание, което се „автоматично разпознава“ от IE.
Можете да опитате с прикачен файл за съдържание; filename = file.csv, но аз не съм сигурен, че винаги ще работи. Ако е така, моля потвърдете.
0 за отговор № 5
Не споменахте какъв браузър използва вашият приятел. В крайна сметка това може да е грешка или нестандартно поведение.
Следната техника изглежда добре работи за мен: http://www.blackbeltcoder.com/Articles/asp/creating-downloadable-content-dynamically.