Autor | Zpráva | ||
---|---|---|---|
tinko Profil |
#1 · Zasláno: 29. 3. 2018, 17:19:22
Zdravím,
Nevím si rady s jednou věcí. Mám php kód jehož výsledkem je proměnná obsahující x řádků textu. Tento text chci vypsat na stránku a pod něj rovněž přidat tlačítko kdy při kliknutí na něj vyskočí uživateli klasické windows okno "uložit jako" a on si uloží onen text jako txt soubor do počítače. Taky bych potřeboval aby se mu při uložení nabídl název onoho souboru jako soubor-datum-cas.txt |
||
Keeehi Profil |
#2 · Zasláno: 29. 3. 2018, 22:06:49
file-data.php
$data = "foo"; $_SESSION['data'] = $data; echo $data; echo '<a href="file-download.php">Stáhnout jako soubor</a>'; file-download.php header("Content-Description: File Transfer"); header("Content-Type: application/force-download"); header("Content-Disposition: attachment; filename=\"soubor_".date("Y-m-d_H-i-s").".txt\""); echo $_SESSION['data']; Toto je jen taková kostra na ukázku. Pro reálné použití to bude třeba upravit. Co z toho má být vidět jsou dvě věci. 1) Je to dvoukrokový proces. A je tedy třeba data mezi jednotlivými kroky uložit. Já jsem v tomto případě zvolil session, protože je to na ukázku nejjednodušší, ale podle typu dat či požadavků aplikace může být vhodnější třeba databáze. 2) Jak se tvoří to, že prohlížeč ze serveru stáhne soubor, který tam fyzicky ani není. Stačí pár hlaviček (hlavně druhá) a prohlížeč to vezme jako soubor pro stáhnutí. Cokoli se vypíše po těch hlavičkách bude obsah toho souboru. |
||
tinko Profil |
#3 · Zasláno: 30. 3. 2018, 13:22:59
Díky. Akorát se mi nedaří přenést obsah $_SESSION['data'] do toho souboru. Pokud soubor uložím je prázdný.
|
||
tinko Profil |
#4 · Zasláno: 30. 3. 2018, 16:11:57
Tak už jsem to vyřešil, díky za nakopnutí.
|
||
Kajman Profil |
#5 · Zasláno: 30. 3. 2018, 22:50:12
Ta data v session si nějak identifikujte, pokud si člověk otevře dva taby, dostal by vždy kód z posledního. Případně můžete na server data poslat celá a on je zase vrátí jako txt soubor.
Dalším řešením je vyvolat dialog uložení nad javascriptovou proměnnou. Různé prohlížeče potřebují různá řešení, tak mrkněte např. na knihovnu github.com/koffsyrup/FileSaver.js |
||
Časová prodleva: 6 let
|
0