Autor | Zpráva | ||
---|---|---|---|
TomasJ Profil |
Dobrý den všem přeji.
Mám takový problém. Dělám galerii obrázků pro svůj web a potřebuji takové nějaké Info o každém obrázku který se načtě. Samozřejmě obrázky jsou na jiném serveru než samotná galerie... Nevím jestli je tento kód správně: function PictSizeKb(){ var soubor = document.getElementById("picture").getAttribute("src"); var obj = new ActiveXObject("Scripting.FileSystemObject"); var us = obj.GetFile(soubor); if(us.Size=="" || us.Size==null || us.Size=="undefined"){ document.getElementById("p_size_kb").innerHTML=" - Neznámá velikost"; } else{ document.getElementById("p_size_kb").innerHTML=" - "+us.Size; }} Pokud to není správný script tak prosím poraďte jak udělám správný. Děkuji. |
||
Chamurappi Profil |
#2 · Zasláno: 3. 3. 2010, 19:45:07
Reaguji na TomaseJ:
Internet Explorer ti nedovolí na webu používat Scripting.FileSystemObject . Ostatní prohlížeče nepodporují ActiveXObject . Musel bys použít AJAX (přečíst HTTP hlavičku Content-Length ) a ten zase nefunguje napříč doménami.
Explorer podporuje vlastnost fileSize na obrázcích, ostatní prohlížeče bohužel nikoliv.
Nejspolehlivější by bylo, kdybys tu velikost zjistil na straně serveru nějakým PHP či ASP.NET skriptem. Méně spolehlivé řešení bys mohl postavit na službě json-head.appspot.com, která dokáže zprostředkovat HTTP hlavičky z libovolné adresy ve formátu javascriptového kódu. Vyšel bys z tohoto základu: <script> function hlavickaLoga(data) { alert("Velikost loga DJPW je: " + data.headers["content-length"] + " bytů."); } </script> <script src="http://json-head.appspot.com/?url=http://diskuse.jakpsatweb.cz/img/logo.png&callback=hlavickaLoga"></script> |
||
TomasJ Profil |
#3 · Zasláno: 3. 3. 2010, 20:23:00
Chamurappi:
Omlouvám se ale AJAX ani ASP.NET neumím... Možná bude lepší když to udělám přes ten json-head.appspot.com |
||
Shoty Profil * |
#4 · Zasláno: 3. 3. 2010, 20:28:16
[#3] TomasJ
Jestli bys chtěl skusit to PHP tak si vytvoř soubor s koncovkou .php a dej do něho: <?php function remotefsize($url) { $sch = parse_url($url, PHP_URL_SCHEME); if (($sch != "http") && ($sch != "https") && ($sch != "ftp") && ($sch != "ftps")) { return false; } if (($sch == "http") || ($sch == "https")) { $headers = get_headers($url, 1); if ((!array_key_exists("Content-Length", $headers))) { return false; } return $headers["Content-Length"]; } if (($sch == "ftp") || ($sch == "ftps")) { $server = parse_url($url, PHP_URL_HOST); $port = parse_url($url, PHP_URL_PORT); $path = parse_url($url, PHP_URL_PATH); $user = parse_url($url, PHP_URL_USER); $pass = parse_url($url, PHP_URL_PASS); if ((!$server) || (!$path)) { return false; } if (!$port) { $port = 21; } if (!$user) { $user = "anonymous"; } if (!$pass) { $pass = "phpos@"; } switch ($sch) { case "ftp": $ftpid = ftp_connect($server, $port); break; case "ftps": $ftpid = ftp_ssl_connect($server, $port); break; } if (!$ftpid) { return false; } $login = ftp_login($ftpid, $user, $pass); if (!$login) { return false; } $ftpsize = ftp_size($ftpid, $path); ftp_close($ftpid); if ($ftpsize == -1) { return false; } return $ftpsize; } } ?> a hned pod to: <?php $url = "http://diskuse.jakpsatweb.cz/img/logo.png"; remotefsize($url); ?> Server musí podporovat PHP Stačí když změníš "http://diskuse.jakpsatweb.cz/img/logo.png" a jiný odkaz :) |
||
Shoty Profil * |
#5 · Zasláno: 3. 3. 2010, 20:36:16
Oprava druhé části:
<?php $url = "http://diskuse.jakpsatweb.cz/img/logo.png"; echo remotefsize($url); ?> |
||
TomasJ Profil |
#6 · Zasláno: 3. 3. 2010, 20:39:57
Shoty:
Děkuji za rady :D s PHP jsem asi zkušenější jak s JS... Ještě to vyzkouším... |
||
Shoty Profil * |
#7 · Zasláno: 3. 3. 2010, 20:45:09
Kdyžtak řekni jestli ti to jede pak můžeš udělat třeba tohle:
document.getElementById("p_size_kb").innerHTML=" - <?php $url = "http://diskuse.jakpsatweb.cz/img/logo.png"; echo remotefsize($url); ?> "; to PHP to vypíše na serveru a pak v prohlížeči se to doplní. |
||
TomasJ Profil |
#8 · Zasláno: 3. 3. 2010, 21:33:17 · Upravil/a: TomasJ
jj PHP mi jde to je mazec, ale nevýhodou je, že jsem chtěl tu galerii pouze ve formátu html :D
Díky. |
||
Časová prodleva: 14 let
|
0