JMA
tuzka.cz
Ing. Jan Matuška tvorba databází a webu kontakt
služby+sw
software
exShop je pohoda!
KOALA
Kniha pošty
projekty
webdesign
o firmě
tipy kolegům
VBA
Dokončit import
FreeImage
ZIPování
TCP/IP
Outlook-přílohy
Access
HWIZ
Zdroje informací
Upload
Z autorské tvorby
Fotografie
Sbírka básní
Plakát
Přečtěte si
Jak a proč jsem se stal křesťanem
Víte, že AHOJ je zkratka?
Poznat Boha, ale jak?
... další přímo na stránkách BTM

Jak na upload přes HTTP?

Informace pro programátory

Jistě víte, že HTTP neboli Hypertext Transfer Protocol je jakýsi jazyk, kterým se dorozumívá internetový prohlížeč se serverem. Tímto protokolem se stahují se internetové stránky, obrázky, datové soubory a přenášejí údaje od klienta k internetovému serveru.

Při programování dynamických internetových aplikací v ASP jsem narazil problém uploadu dat na server. Nejprve jsem si myslel, že na to je komponenta FileSystemObject. Omyl - ta je pouze pro práci se soubory na serveru. Pokud chcete soubor přehrát od klienta na server, potřebujete speciální komponentu. V konferenci jsem se dověděl o několika existujících komponentách ( SA-FileUpload, komponenta od PSTRUH software). Další cesta se mi honila hlavou: udělat si prográmek třeba ve VB, který pošle data podobným způsobem, jako se odesílá vyplněný formulář z browseru na server. Syntaxe HTTP se dá nastudovat z různých zrojů (např. z RFC). Popisuje se tam většinou struktura dat, která posílá server klientovi, ale nikde jsem nenašel, jak vypadají data, která jdou obráceně - od klienta na server. Ještěže se v konferenci našel někdo, kdo dokázal pomoci. Prográmek iserver.exe od Bc. Petra Vozky je právě tím řešením. Umí jednoduše zobrazit to, co posílá klient serveru.

iSERVER
stupid socket server with static HTTP response, (c)1999,2000 vozkych

Abych pravdu rekl, iserver byla takova desna rychlovka, ktera mela jenom rychle vyresit jeden muj problem a v zadnem pripade se nejedna o svetoborny soft. Nevyzaduje zadne ovladani (Ctrl-C je jediny "hotkey", ktery to zna ;-)). Presmerovat vystup do souboru, je mozne jak pro normalni vypisy ( presmerovat std. vystup 1> ) tak pro chybova hlaseni ( presmerovat std. errorvystup 2> ). Navic jsem pridal moznost spustit iserver i na jinem portu nez na std. HTTP 80. Odezva iserveru je vsak nadale ve smyslu HTTP protokolu. Moznost spustit iserver na lib. portu je prevazne kvuli moznosti provozovat na jednom pocitaci jak normalni HTTP server tak i iserver pro ruzne pokusy. Mate-li zajem, muzete si iSERVER.exe stahnout (16 kB) nebo sbaleny v zipu (4 kB).

Prepinace pri startu: -r(nastaveni std. odpovedi na pozadavek od klienta) a -p(cislo portu):

iserver.exe -r:Tudle nudle -p:80 >vystup.txt >chyby.txt

Pozadavky programu: knihovny MFC42.DLL, WINSOCK.DLL.


Usage: iserver.exe -r:<response msg> -p:<port for listening>

<response msg> = message for client
<port for listening> = port number for server listening

 

               \|/
              (@ @)
+--------oOO---(_)---------------+
|    vozkych = Bc.PETR VOZKA     |
|    email:
vozkych@atlas.cz     |
| www:
http://massystems.tsx.org |
+--------------------oOO---------+
             |__|__|
              || ||
             ooO Ooo

Nakonec ale všechno stejně dopadlo jinak. Tento úkol jsem řešil pro web umístěný na serveru Czechia. Firma Zoner, která Czechii provozuje, má (únor 2000) upload zatím vyřešen pomocí cpshost.dll od Microsoftu. Ten však nelze použít přímo v ASP. Jde spouštět pouze přímo z HTML formuláře nebo adresní řádky. Nemají žádnou komponentu, která by byla použitelná přímo v ASP. Důvod? Žádná dostupná komponenta (aspoň podle jejich vyjádření) nemá ošetřeno oprávnění pro přístup. Hrozí nebezpečí, že bude někdo pracovat s cizími soubory, což je naprosto nežádoucí. Když se podíváte na technické info Czechie, zjistíte, že i FileScriptingObject si museli naprogramovat vlastní. I komponentu pro upload si budou muset napsat svoji. Snad se někdy dočkáme. :-)

Zatím jsem to tedy vyřešil tak, že uživatelé budou uploadovat data ve dvou krocích. Napřed se pomocí cpshost.dll přenese soubor s daty na server do adresáře, kam je zřízen uživateli zvláštní FTP přístup. Potom se spustí import dat, který pomocí FileSystemObject načte data ze souboru do databáze a po dokončení soubor odstraní.

© 2000 JMA

Doporučuji
Exit 316
Letní tábor Doubravka 2009 s Beberkou
Exit 316
Nový TV pořad od září 2006!
Pro děti - zvědavé otázky se Zvědavou tužkou
KROKY - Časopis pro děti
křesťanská díla, CF - nejen databáze křesťanských písní
Komerce atd.
Podpořte snahu proti zavedení SW patentů!!!
profi webhosting Gigaweb
Nabídka SW a služeb
Kniha pošty
KOALA
Tvorba www
Umístění stránek
Chcete internetový obchod?