Autor Zpráva
wnc
Profil
Zajímalo by mě, je-li možné načíst ze serveru obrázek, pak zkontrolovat jeho velikost (souborovou) a je-li dostatečně veliký (větší než 0) - tak ho zobrazit.

Doufám, že jsem to popsal srozumitelně.
peta
Profil
cz.php.net/image
wnc
Profil
...no to mi moc nepomůže. Potřebuji to řešit na straně klienta. Popíšu příklad konkrétně. Na stránce je image (obrázek z webkamery). JS ho v pravidelném intervalu obnoví. Někdy se ale stane, že se časově potká javascript s mechanizmem, který do souboru jpg posílá nový obraz - výsledkem je to, že soubor je prázdný. V takovém případě bych potřeboval, aby se nic nestalo a zůstal tam starý obrázek (bez obnovení).

Obrázek je potřeba nejdříve naloadovat a až teprve potom rozhodnout co s ním. Jinak totiž se může stát to, že v meziobdobí mezi kontrolou a skutečným stáhnutím se soubor dostane do prázdného stavu.
Alphard
Profil
filesize();?

edit, sorry, peta mě zmátl tím odkazem na php manuál, ty to chceš v javascriptu, to nevím
los
Profil *
Pomocou udalosti onerror môžeš skontrolovať, či nenastala chyba počas nahrávania obrázku. Prípadne v onload skontrolovať veľkosť obrázku. A potom ho v prípade úspešného nahratia zobrazíš.
peta
Profil
Alphard
zmatl nezmatl, kontrolovat se to da jedine v PHP.
wnc
<img src=soubor.img.php>
tam si nastavis header na type=jpeg...
a nactes si do toho php soubor s obrazkem. pokud je spatny, zobrazis starsi kopii nebo vratis nejakemu scriptu false.

Mozna to ted motam, protoze jsem to nikdy nepotreboval. Staci dobre zamknout soubory pokud do nich nezapises novy obsah. Tim padem JS ceka, dokud muze se souborem pracovat. A nemas zadny problem. Problem je teda v programu, ktery obrazky vyrabi, ze si soubor nezamkne.
tusim file_lock
cz.php.net/file

v JS by se mozna dalo tohle vyresit ale jedine pres zminene onerror nebo pres activeX v IE

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0