Autor Zpráva
SwimX
Profil
Dobrý denm
potřebuji nabídnout uživateli soubor s exportem z databáze, ale nechci ho ukládat na servr, je nějaká možnost?

Můžu ho samozřejmě vytvořit pod názvem třeba time()."export.txt" a pak někdy smazat, ale přijde mi to zbytečné.

Děkuji
ninja
Profil
1. Nacist data z databaze.
2. Upravit do exportniho formatu.
2. Poslat je uzivateli s odpovidajici hlavickou pro dany typ souboru.
AM_
Profil
3. je dobré to zkombinovat s mod_rewrite a dát tomu souboru název přepisem adresy (stačí třeba export.txt přepisovat na export.php). Název souboru jde podstrčit i v hlavičce content-disposition, ale některé prohlížeče (tuším starší verze IE, nevím to přesně) s tím mají problém. rewrite je spolehlivější cesta.
SwimX
Profil
ninja
1. Nacist data z databaze.
2. Upravit do exportniho formatu.
to je jasný

2. Poslat je uzivateli s odpovidajici hlavickou pro dany typ souboru.
na to se ptám, jakou?

AM_
nevím, zda rewrity budou fungovat na školním serveru, domluvím se se správcem, jinak budu posílat header:
header("Content-Description: File Transfer");
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=\"$soubor\"");
yFang
Profil
SwimX
na to se ptám, jakou?
To přeci záleží na typu souboru.
SwimX
Profil
yFang
txt
yFang
Profil
SwimX
V tom případě text/plain.
SwimX
Profil
yFang
Už mi to došlo. Děkuji.

Ovšem: co když si vícero uživatelů otevře ten soubor? Mám výstup z databáze, a uživatel si formulářem vybere: jak seřadit, podle čeho, které sloupce zobrazit... Pak si může udělat export buď celé, nebo toho co si navolil. Takže když vícerolidí naráz klikne na odkaz pro export s rozdílnýmí dotazy na db tak by se mohlo stát, že dostanou něco jiného..?
AM_
Profil
ne, vždyť každý dotaz běží ve svém vlákně. Myslíš, že když jeden uživatel otevře stránku?promenna=1 a druhý otevře stránku?promenna=2, že se jim to pomíchá?
SwimX
Profil
AM_
já sem asi dneska uplně mimo. Díky, jdu radši spát

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: