ASP tip: Dynamické vkládání souborů

Užitečnou schopností ASP je vkládání souborů, což šetří čas při návrhu stránek a jejich pozdější údržbě. Bohužel, nelze vložit soubor, jehož jméno je generováno skriptem, to ASP neumí. Nicméně, pokud máte IIS4, můžete si pomoci jednoduchou funkcí.
Užitečnou schopností ASP je vkládání souborů, což šetří čas při návrhu stránek a jejich pozdější údržbě. Bohužel, nelze vložit soubor, jehož jméno je generováno skriptem, to ASP neumí. Nicméně, pokud máte IIS4, můžete si pomoci jednoduchou funkcí.

Sice pomocí ní nedosáhnete toho, aby se vložený soubor vykonal (tj. jeho obsah bude slepě vypsán na výstup, případné příkazy <%…%> se neprovedou), ale i tak je tato funkce užitečná, například pro vkládání větších částí textu, které je lepší uchovávat v samostatných textových souborech.


  Sub IncludeFile(FilePath)
   If Left(FilePath, 1) = "/" Then
   PhysicalPath = Server.MapPath(FilePath)
   ElseIf Mid(FilePath, 2, 2) = ":\" Then
   PhysicalPath = FilePath
   Else
   Response.Write "CHYBA: Chybně zadné jméno souboru"
   Exit Sub
   End If
  
   Set FSO = Server.CreateObject("Scripting.FileSystemObject")
   Set F = FSO.OpenTextFile(PhysicalPath)
   Do While Not F.AtEndOfStream
   Response.Write F.ReadLine & vbCrLf
   Loop
   Set F = Nothing
   Set FSO = Nothing
  End Sub
  

Výše uvedená procedura IncludeFile je užitečným nástrojem pro vkládání textových souborů do ASP. Má jediný parametr, a to FilePath. Ten obsahuje cestu k souboru. Může být určena buď relativně, vůči rootu WWW serveru (například "/include/txt/124.txt"), nebo absolutně, s ohledem na fyzickou strukturu dat na disku (například "C:\Data\Texty\124.txt"). Virtuální cesta musí vždy začínat lomítkem a fyzická sekvencí "?:\" (kde otazník nahrazuje označení příslušného disku). Pokud tomu tak není, vyhlásí se chyba. Soubor do ASP vložíte například takto:

IncludeFile "/include/text/soubor.txt"
  
Pokud ovšem budete tuto funkci používat v kombinaci s parametry předávanými z formuláře, dejte si pozor, abyste nezpůsobili bezpečnostní díru do svého systému. Pokud totiž budete volat nějaký soubor například zobraz.asp?soubor=/include/txt/soubor.txt, bude vše v pořádku, dokud někdo nenahradí v URL název souboru a nenapíše něco jako zobraz.asp?soubor=/default.asp. V tomto případě totiž dostane kompletní zdrojový kód vaší ASP stránky nebo jakéhokoliv souboru uloženého za rootem WWW serveru (nebo dokonce na celém počítači, pokud byste použili volání například zobraz.asp?soubor=C:\data\text\soubor.txt). Nejsnažší způsob, jak tomu zabránit, je předávat jenom část cesty. Pokud například svoje soubory k vkládání přechováváte v adresáři /include/text, můžete použít volání zobraz.asp?soubor=jmeno a vkládat pomocí následující konstrukce

IncludeFile "/include/text/" & Reqest("soubor") & ".txt"
  

Tato funkce využívá ActiveX komponentu FileSystemObject, která je součástí IIS4. Prostřednictvím této komponenty můžete přistupovat k souborům na vašem disku a dělat různá zajímavá kouzla.
  

Váš názor Další článek: Mattel kupuje výrobce her: nová éra?

Témata článku: Software, Programování, Stem, Exit, Užitečná funkce, Vkládání, Sta


Určitě si přečtěte

Nový iPhone a další novinky Applu: sledujte, na co se zase budou stát fronty

Nový iPhone a další novinky Applu: sledujte, na co se zase budou stát fronty

** Apple dnes představuje nové produkty v čele s novými iPhony ** Nemusí zůstat jen u telefonů, čekají se i další novinky ** Úvodní přednáška začíná v 19:00 našeho času

David Polesný | 57

Dell XPS 13: Když vás ostatní doženou až za tři roky

Dell XPS 13: Když vás ostatní doženou až za tři roky

** XPS 13 nastartoval trend notebooků bez rámečků ** Letošní model kompletně přechází na USB-C ** Navzdory malému tělu se řadí výkon ke špičce

Tomáš Holčík | 33

Acer Swift 7: Notebook tenký jako mikrotužková baterie

Acer Swift 7: Notebook tenký jako mikrotužková baterie

** Celý notebook včetně displeje se vejde pod 9 mm ** Výkon stačí pro kancelář, ale porazí ho stroje za třetinu ceny ** Ještě tenčí než předchozí generace, ale už ne tolik kompromisů

Tomáš Holčík | 34

Do kanceláře to nejlepší: Test notebooku HP Elitebook 830 G5

Do kanceláře to nejlepší: Test notebooku HP Elitebook 830 G5

** HP se u nového Elitebooku snaží o nadstandardní výbavu ** Notebook klade důraz na videokonference ve firemním prostředí ** Unikátní displej umí omezit čitelnost z boku

Tomáš Holčík | 57

Nedávno detekovaná potulná planeta je ohromné magnetické monstrum

Nedávno detekovaná potulná planeta je ohromné magnetické monstrum

** Astronomové nedávno zaznamenali pozoruhodné prvenství ** Poprvé s radioteleskopem detekovali planetární objekt za hranicemi Sluneční soustavy ** Stejně tak poprvé změřili magnetické pole takové planety

Stanislav Mihulka | 6


Aktuální číslo časopisu Computer

Megatest: 13 grafických karet

Srovnání 7 dokovacích stanic s USB-C

Jak na perfektní noční fotografie

Kvalitní zdroje informací pro sebevzdělávání