Formßt bloku:
SendFile: v²raz_typu_string_nebo_BLOB
P°φkaz odeÜle v²razem zadanou hodnotu do browseru. Pou₧φvß se tehdy, kdy je t°eba browseru poslat n∞jakß binßrnφ data znßmΘho formßtu (obrßzek, dokument apod.). SouΦasn∞ s tφmto p°φkazem je t°eba nastavit vhodn² Content-type
dokumentu.
Vφce informacφ o uklßdßnφ soubor∙ do databßze a odesφlßnφ soubor∙ do browseru naleznete zde.
P°φklad:
K odeslßnφ souboru, kter² je ulo₧en v tabulce, do browseru se pou₧ije nßsledujφcφ HTW Üablona. Pro nßsledujφcφ v²klad je pojmenovßna Getfile.htw
, p°edpoklßdejme, ₧e chceme poslat soubor, jeho₧ jmΘno je p°edßvßno do Üablony ve vstupnφ formulß°ovΘ prom∞nnΘ filename:
<html> <head> <title>Soubor neexistuje</title> </head> <%wbc%> SQLStatement: soubor + SELECT content,content_type FROM Files + WHERE filename="%filename%" EndSQLStatement; ; pokud takov² soubor existuje #if soubor#>0 ; zkontrolovat, zda nenφ Content-type prßzdn² #if soubor[0].content_type=="" ; pokud ano, nastavit obecn² Content-type Content-type: "application/octet-stream" #else ; nastavit Content-type Content-type: soubor[0].content_type #endif ; poslat soubor SendFile: soubor[0].content #endif <%/wbc%> <body>
<!-- tato strßnka se sestavφ a odeÜle jedin∞ tehdy, pokud se neprovede SendFile -->
<h1>Soubor neexistuje</h1> Soubor <%filename%> nenφ v databßzi! </body> </html>
Lokßlnφ Üablona se pou₧ije jen tehdy, pokud se v²sledn² dokument negeneruje p°φkazem SendFile
zaslßnφm proudu bajt∙ p°φmo browseru.
Nastavenφ sprßvnΘho jmΘna souboru p°i uklßdßnφ dokumentu browserem
HTTP protokol nedisponuje p°φkazem (HTTP hlaviΦkou), kter²m by se browseru mohlo nastavit jmΘno souboru, do kterΘho se mß dokument zobrazen² browserem ulo₧it. JmΘno souboru browser odvozuje podle URL. V p°φpad∞, ₧e chceme zobrazit soubor "obrazek.jpg" z tabulky Files, browser zobrazφ dokument s nßsledujφcφm URL:
http://www.server.cz/cgi-bin/wbcgi.exe/db/app/getfile.wbc?filename=obrazek.jpg
P°i pokusu o ulo₧enφ dokumentu browser nabφdne v "Ulo₧it jako" dialogu jmΘno "getfile.wbc", ale ne sprßvnΘ "obrazek.jpg".
K oΦekßvanΘmu chovßnφ m∙₧eme browser donutit tφmto trikem: nechßme browser zobrazit dokument s tφmto URL:
http://www.server.cz/cgi-bin/wbcgi.exe/db/app/getfile.wbc/obrazek.jpg?filename=obrazek.jpg
Pak browser p°i uklßdßnφ nabφdne jmΘno "obrazek.jpg". Internet klient p°i zjiÜ¥ovßnφ jmΘna WWW objektu Φte postupn∞ nßzev databßze, nßzev aplikace a nßzev WWW objektu. To, co je v URL za nßzvem WWW objektu a p°ed znakem "?", neΦte a ignoruje. Narozdφl od toho browser pova₧uje "getfile.wbc" za nßzev podadresß°e a teprve "obrazek.jpg" za nßzev souboru.