patrix007
21.09.2010, 18:35:10
Sprawa wygląda tak:
generuję w PHP dynamicznie XML z bazy danych i w tym momencie wygląda to tak, że do przeglądarki wczytuje się XML,
chciałbym uzyskać taki efekt aby po wygenerowaniu tego XML przeglądarka zinterpretowała to jako plik do pobrania.
Czy można wymusić w przeglądarce pobranie ?
Zaznaczam, że jest to generowane dynamicznie i nie cachowane do pliku na serwerze...
Dzięki za pomysły.
Jest to kwestia tego, jakie nagłówki wyślesz do przeglądarki. Dla XML-a jest application/xml, ale wiele przeglądarek interpretuje to jako wyświetlenie. Spróbuj dać application/octet-stream* oznaczające "ciąg binarny o nieznanej zawartości" - w 99,99999999999999999% przypadków przeglądarka udostępni wtedy okienko do zapisu pliku. Wykorzystaj jeszcze nagłówki do wybrania nazwy pliku i jego wielkości, to będzie to jeszcze bardziej elegancko obsługiwane.
* i nawet nie próbuj tego napisać bez pauzy - w sieci działa jakaś grupka "inteligentnych inaczej" propagujących wierutne kłamstwo, że przeglądarka Opera wymaga nagłówka application/octetstream, tymczasem wysłanie takiego nagłówka ją totalnie ogłupia. Ci ynteligenci pracowali m.in. przy takich skryptach, jak phpBB czy vBulletin i efekt jest taki, że pod Operą można się tam pociąć, próbując pobrać załącznik.