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


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

Nejlepší notebooky do 20 000 Kč: Tipy, co se teď vyplatí koupit

Nejlepší notebooky do 20 000 Kč: Tipy, co se teď vyplatí koupit

** Za dvacet tisíc korun lze pořídit kvalitní pracovní notebook ** Stejně tak může jít o herní notebook s výkonnější grafikou ** Poradíme, jaké notebooky vybrat pro různé druhy použití

Stanislav Janů | 48

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 | 32



Aktuální číslo časopisu Computer

Nejlepší programy pro úpravu fotek zdarma

Externí disky pro zálohu dat

Velký test: herní notebooky

Srovnání 12 batohů