|
![]() | Uklßdßnφ soubor∙ do databßze | ![]() | Prßce se soubory pomocφ WBIK |
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/602cgi8.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/602cgi8.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.
DoporuΦenφ
Seznam soubor∙ zobrazujte takto:
<html> <head>
<title>Seznam soubor∙</title>
</head> <%wbc%> SQLStatement: soubory + SELECT filename FROM Files ORDER BY filename <%/wbc%> <body>
<h1>Seznam soubor∙</h1> Celkem <%soubory#%> soubor∙.
<p> <%begindetail soubory%> <a href="<%wb_url%>/getfile.wbc/<%filename%>?filename=<%filename%>"> <%filename%></a><br> <%enddetail%> </body> </html>
V p°φpad∞ odeslßnφ souboru p°φmo z disku (neulo₧enΘho v databßzi) do browseru pou₧ijte p°φkaz SendDiskFile.
![]() | Uklßdßnφ soubor∙ do databßze | ![]() | Prßce se soubory pomocφ WBIK |