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í, Sta, Stem, Užitečná funkce, Vkládání, Exit


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

Porno insider: Jak virtuální realita vstupuje do filmů pro dospělé

Porno insider: Jak virtuální realita vstupuje do filmů pro dospělé

** Pornografie údajně představuje třetinu internetové obsahu a je technologický tahounem ** Do erotického obsahu postupně zasahuje i virtuální realita ** Kromě vizuálního vjemu se pracuje také na virtuálním uspokojení toho hmatového

Jan Dudek | 28

Šéf amerického Red Hatu: Odpojte Brno od internetu a zhroutíme se

Šéf amerického Red Hatu: Odpojte Brno od internetu a zhroutíme se

** V Česku najdete hromadu skvělých vývojářů ** Mnozí z nich přispívají do open-source ** Třeba v brněnském Red Hatu

Jakub Čížek | 51

Blíží se Juno. Jeden z nejhezčích Linuxů pro normální lidi

Blíží se Juno. Jeden z nejhezčích Linuxů pro normální lidi

** Ubuntu a Fedora patří k nejpopulárnějším linuxovým OS pro desktop ** A pak je tu zástup dalších nebo jejich odvozenin ** Jedním z nich je Elementary OS, který se brzy dočká novinek

Jakub Čížek | 71

WALL-E vyfotil Zemi ze vzdálenosti 1 milionů km

WALL-E vyfotil Zemi ze vzdálenosti 1 milionů km

** Malá sonda s přezdívkou WALL-E pořídila fotografii Země a Měsíce ze vzdálenosti 1 milionů km ** CubeSat letí se sondou InSight k Marsu ** InSight přistane na Marsu 26. listopadu

Petr Kubala | 4

15 věcí, které umí Windows 10, ale možná o nich vůbec nevíte

15 věcí, které umí Windows 10, ale možná o nich vůbec nevíte

** Systém Windows 10 umí spoustu užitečných drobností ** O mnoha praktických funkcích pravděpodobně ani nevíte ** Poznejte užitečné tipy, které se vám mohou hodit každý den

Vladislav Kluska | 30

Google ADT-2: Miniaturní krabička s Android TV 8.0, kterou si nikdy nekoupíte

Google ADT-2: Miniaturní krabička s Android TV 8.0, kterou si nikdy nekoupíte

** Dlouho se nevědělo, co to přesně má být ** Pak se s krabičkou Google pochlubil na I/O ** Do „Chromecastu“ vtěsnal celý Android TV

Jakub Čížek | 17

Šmírovačka kamerami Googlu: Koukněte se, co nového zachytily na Street View

Šmírovačka kamerami Googlu: Koukněte se, co nového zachytily na Street View

Google stále fotí celý svět do své služby Street View. A novodobou zábavou je hledat v mapách Googlu vtipné záběry. Podívejte se na výběr nejlepších!

redakce | 42


Aktuální číslo časopisu Computer

Kdy necháme řídit chytrá auta?

6 Wi-Fi Mesh systémů ve velkém testu

Srovnali jsme 7 sportovních kamer

Znáte pravidla pro létání s drony?