ugrás a tartalomhoz

Honlapon könyvtárból legújabb fájl megjelenítése

szogedi · 2008. Jún. 23. (H), 23.31
Van egy aranyos script honlapunkon, amely adott mappa adott képét automatikusan frissíti előre definiált időközönként. Sajna olyan ip kamerát sikerült vásárolnunk, amely nem tudja az azonos néven történő FTP-re feltöltést, ellentétben a lecseréltel.

<div id="Layer1"><img src="camera_1_live.jpg" width="320" height="240" border="1" name="refresh" />
<script language="JavaScript" type="text/javascript">
<!--
var t = 1 // interval in seconds
image = "camera_1_live.jpg" //name of the image
function Start() {
tmp = new Date();
tmp = "?"+tmp.getTime()
document.images["refresh"].src = image+tmp
setTimeout("Start()", t*1000)
}
Start();
// -->
</script></div>

Valaki tudna segíteni abban, hogy a képet hasonlóképpen jelenítse meg (másodpercenként vagy sűrűbben) az összes felvételt tartalmazó könyvtárból
úgy, hogy csak a legfrissebb legyen látható?

Gyakorlatilag mindig a legfrissebb képet lássa a főnök, ha megtekinti az oldalt, de villódzás nélkül, ezért is kellene a javascript-hez hasonló megoldás, hogy ne az egész oldal frissüljön, hanem csak a képet hívja be az oldalon.

Köszi a segítséget így előre is!
 
1

Szerver

janoszen · 2008. Jún. 24. (K), 07.14
Szerver oldalon kell megoldanod a problémát, ugyanis ha nem tudja felülírni a fájlt, akkor kénytelen vagy kiolvasni. Egyébként én ilyet nem csinálnék, egyrészt mert nem tudom, hol vagy, de másodpercen belül nem fogod tudni feltolni a képet, másrészt le fogod rohasztani a szervert. Harmadrészt eléggé zaklatott nézési élmény lesz, ha másodpercenként nekiáll töltikézni a képet.
2

Másik ötlet helyette?

szogedi · 2008. Jún. 24. (K), 08.56
Tudsz másik ötletet ezen megoldás helyett?
3

Miért?

janoszen · 2008. Jún. 24. (K), 09.12
Ad 1: használj rendes feltöltő szoftvert
Ad 2: szerver oldalon keresd meg, hogy melyik fájlt akarod kiszolgálni
Ad 3: JavaScriptből csinálj dupla bufferelést (ergó egy láthatatlan képbe töltöd be az új képet, majd megcseréled a kettőt).
Ad 4: 5 másodpercnél gyakrabban ne frissíts. Ha ilyet szeretnél, akkor streamelj videót.
Ad +1: Ennek a fícsörnek mondjuk úgy 1998 környékén volt divatja, azóta senkit nem érdekel, hacsak nem valami konkrét és fontos dologról van szó.
4

A dolog fontos és bár akkor volt divat, ma is fontos lenne...

szogedi · 2008. Jún. 24. (K), 09.50
Feltöltő szoftver nincs, mert IP Kamera dobja a képeket FTP-re mozgás esetén. A kamera nem képes egyidőben két FTP-t kezelni, meg értelmetlen is lenne, hiszen akkor ugyanazt a képet kellene kétszer elküldenie mozgás esetén, mivel az egyik FTP a folyamatos fényképezést tárolná csak, továbbá a kamerát nem lehet úgy beállítani, hogy folyamatosan ugyanazon fájl néven mentsen az FTP-re. Lehet vele folyamatos feltöltést készíteni másodpercenként kb. 10 kb-os méretekben 320x240-es felbontás mellett, de ilyenkor is más és más nevet ad a képeknek. Tehát a feltöltött kép soha nem lesz ugyanaz.

Streamelt videót lehet vele nézni, de csak bejelentkezés után. Sajna (gondolom biztonsági okból kifolyólag) az automatikus bejelentkezés URL-ből nem megoldható, mivel frameset-et és javascript-et használ a bejelentkezési képernyő. Miután több kamera képét kellene megjelenítenem, a kameránkénti bejelentkezés megkeserítené főnököm életét, ha minden weblap nyitáskor be kellene jelentkeznie 4-5 kamerára egymás után, hogy együtt láthassa a képeket.

Miután az infrás ip wlan kamerák már itt vannak, az idehaza kapható ár töredékéért, ezzel kell megoldanom a problémát. Van ötlet?
5

Több ötlet is volt

zila · 2008. Jún. 24. (K), 10.37
Ad 2: szerver oldalon keresd meg, hogy melyik fájlt akarod kiszolgálni

Ez azt jelenti, hogy a weboldalon ahol megjeleníted a webkamera képét ott csinálhatod ezt is:
<img src="showIPCamPicture.php?cam_id=1234">
Ekkor a showIPCamPicture.php fileben a cam_id-hez tartozó könyvtárban lévő dátum szerint legfrissebb képet adod vissza a böngészőnek. Így mindig a legfrissebb kép lesz látható. A frissítéshez meg használd proclub többi ötletét (dupla buffer, 5 mp-es frissítés)

Jut eszembe... (szerk:)
Feltöltő szoftver nincs, mert IP Kamera dobja a képeket FTP-re mozgás esetén.

Mi akadályoz meg abban, hogy a webkamera feltölti egy konyvtárba a képeit, de te erre a könyvtárra beállítasz egy cront-t, vagy egy fam daemont és ha aktivitás van akkor fix néven kiteszed a legfrissebb képet a "publikus" helyére? Mondjuk ágyúval verébre megoldás de lehet ilyet is csinálni...
6

Köszi a segítséget...

szogedi · 2008. Jún. 24. (K), 10.58
A javascript készen van a "kirakott" kép vagy a xyz.php megjelenítésére, de maga a php kódja hiányzik. Nincs készen neked valami hasonló, ami adott könyvtár legfrissebb képét jeleníti meg a böngészőben?
7

Nope

janoszen · 2008. Jún. 24. (K), 11.01
Nincs. És ne is használd így, mert minden alkalommal végigszkennelni a könyvtárat kicsit pazarló megoldás. Én beiktatnék egy közbenső szervert, ami kiteszi az oldalra a fájlokat és learchiválja, amit le kell.
8

Mégis...

szogedi · 2008. Jún. 24. (K), 11.35
Azért én mégiscsak megpróbálkoznék vele, ha segítessz benne. Kíváncsi vagyok rá, hogy mennyire terhelné le a szervert. Tudsz segíteni a kódban?
9

Magad uram?

zila · 2008. Jún. 24. (K), 12.31
Itt nézelődnék kicsit:
http://hu.php.net/manual/en/ref.dir.php

Ezen belül pedig a scandir nevű függvény lehet érdekes.
10

RE: Magad uram

szogedi · 2008. Jún. 24. (K), 13.10
Nagyon szívesen megcsinálnám én is, ha annyira értenék hozzá. De mivel php-ban nem vagyok annyira jártas, kénytelen vagyok segítséget kérni másoktól.

Nem arra kérlek, hogy oldd meg helyettem, hanem hogy egy sample.php-t vagy hasonlót linkelj be nekem, hogy el tudjak indulni rajta. Mivel fontos lenne az éltemben, nem érek rá a teljes php nyelvet megtanulni a napi problémáim mellett. Előre is köszi. Most már egy álló napja keresem a netet példa után kutatva, de ilyen sample-t nem találtam sehol.
11

Pedig...

zila · 2008. Jún. 24. (K), 13.54
Pedig úgy tűnik pont azt kéred, hogy oldjuk meg helyetted...
Ha megnézed a belinkelt manual oldalt, akkor ott találsz példákat is:
$dir    = '/tmp';
$files1 = scandir($dir);
$files2 = scandir($dir, 1);

print_r($files1);
print_r($files2);
vagy
$dir = "/tmp";
$dh  = opendir($dir);
while (false !== ($filename = readdir($dh))) {
    $files[] = $filename;
}

sort($files);

print_r($files);

rsort($files);

print_r($files);
Ha ezek után még a sort függvénynek is utána olvasol, netán kicsit ismerkedsz a tömbökkel akkor - sokat mondok - 1 nap alatt meg tudod írni magadnak a programot.

Nem érsz rá megtanulni a php nyelvet? Ne tanuld meg, de akkor ne is vállalj el olyan feladatot amihez php-t kell használj...
12

Nagyon köszi a segítséget, igyekszem...

szogedi · 2008. Jún. 24. (K), 14.04
Sajna nem én vállalom be a feladatot, hanem a főnök osztja rám őket. Nála pedig nincs kec-mec. Nyomni kell, ha értünk hozzá, ha nem. Aúgy állattenyésztéssel foglalkozó cég vagyunk. :-)
13

Hajaj (kicsit off)

Max Logan · 2008. Jún. 24. (K), 14.39
Ezzel kapcsolatban vannak tapasztalataim. A főnök azt mondja, hogy hozzak létre egy rendszert. Mondtam neki, hogy ok, de akkor beszéljük meg a részleteket.

Volt egy nagyon bonyolúlt számítási rendszer, amit le kellett volna programozni. Már sokadik alkalommal mondtam, hogy akkor beszéljük át megint, mert ez nagyon bonyolúlt. Azt is mondtam, hogy ok, hogy kézzel papíron (és Excel segítségével) meg tudják oldani, de ezekre a durva logikai csavarokra automatizált algoritmusokat írni nem kis piskóta (főleg, hogy automatizált folyamatokban kézileg akartak adatokat bevinni).

A végén már úgy állt a dolog, hogy én vagyok a hülye, mert x-edik beszélgetés alkalmával sem fogom fel, hogy miről van szó. Aztán érdekes fordulatot vett a dolog. Adott volt egy fejlesztő csapat, aki meg lett bízva azzal, hogy az akkori munkahelyem vállalatirányítási rendszerét szabják kicsit testre egyedi fejlesztésekkel.

Ekkor kértek árajánlatot az említett bonyolúlt számítási modulra. Amikor én mondtam, hogy ezt nem könnyű így ahogy van megvalósítani,akkor nem hittek nekem. Amikor a fejlesztő csapat azt mondta, hogy meg tudják oldani, de kb. 1 hónap fejlesztés és kb. 670e + ÁFA lenne a móka, akkor érdekes módon letett a vezetőség a számítási modul programoztatásáról és a vállalatirányítási rendszerbe való integrálásáról.

Szóval a főnök sok hülyeséget beszél adott esetben, amihez lövése sincsen. Ennél már csak az a szomorúbb, amikor én mint szakember, akit azért alkalmaz, hogy az adott terület feladatait ellással megmondom, hogy szakmailag ez meg ez nem indokolt, vagy nem így kellene csinálni, akkor én vagyok a hülye.
14

Maximálisan egyetértek

szogedi · 2008. Jún. 24. (K), 15.06
Agrármérnök vagyok. Nálunk odáig fajult a dolog, hogy meg kellett tanulnom mssql-ben és vb.net-ben programozni. 5 év alatt építettem fel a víziszárnyas tenyésztésre teljesen testreszabott vállalatirányítási rendszerünket, amely nyilván egyszerűbb lett volna, ha veszünk egy SAP-t, Axapta-t, vagy bármilyen másik rendszert. Mondjuk így teljesen a saját szájízem szerint lett kialakítva. Minden stiklit tud kezelni, csakhát idő és tudás kellett hozzá. Most viszont pácban vagyok, mert kamerázni kell az irodát, és persze hogy saját erőből, a legolcsóbb cuccokkal kell dolgozni. Jelen kamerát 30 rugó alatt vettük meg, amíg az AXIS kamerája 150e felett kezdődött ugyanebben az IR IP Wlan FTP kategóriában. Lenne persze 650e-ért is, de nem nálunk. Ismerős a helyzet? SZARBÓL VÁRAT! Jó magyar módra persze...
15

Ismerős :-)

Max Logan · 2008. Jún. 24. (K), 15.29
Ismerős a helyzet? SZARBÓL VÁRAT! Jó magyar módra persze...

Ahogy elnézem, nem csak én nyúltam bele (az egyik előző munkahelyemmel) a lecsóba. A volt főnököm (egyik) legnagyobb baja az volt, hogy bár alkalmazott adott területre embereket, de nem fogadta meg az építő meglátásaikat. Pedig ha így tett volna, a cége legalább 5x jobban menne és nemzetközi szinten neve lenne.

Egyébként nem bántam meg, hogy ott voltam, mert láttam, hogy hogyan nem kell csinálni a dolgokat, főként a cégvezetéssel kapcsolatban. Ez olyan tapasztalat, amit pénzben szinte lehetetlen kifejezni.

Az ottlétem alatt arra jöttem rá, hogy túl nagy az egója a cégvezetőknek és nem akarják elfogadni, hogy egy alkalmazottjuknak jobb ötletei lehetnek, mint neki. A másik pedig, hogy sokan (nagyon sokan) nem tudnak távlatokban gondolkoni. Pedig csak úgy lehet valamit sikerre vinni, ha vannak távlati elképzelések. A volt főnököm is a mában él, pedig ha csak 2-3 évre előre lennének tervei, már nem itt tartana.

Arról inkább nem is mondok semmit, hogy az informatikai fejlesztésekre (főként hardware) sajnálja a pénzt a volt főnököm, de milliókat fizet olyan dolgokra, ami sem rövid, sem hosszútávon nem szolgálja a cég érdekeit.
16

Épüljön a vár :)

zila · 2008. Jún. 24. (K), 15.33
Ezzel kerestem:
http://www.google.com/search?client=safari&rls=en-us&q=php+list+files+order+by+date&ie=UTF-8&oe=UTF-8

Első találat:
http://bytes.com/forum/thread12457.html
$names = array();
$dates = array();
if ($handle = opendir('/path/to/files')) {
    while (false !== ($file = readdir($handle))) {
        if (strlen($file) - strpos(strtoupper($file), '.PDF') == 4) {
            $names[] = $file;
            $dates[] = filectime($file);
        }
     }
     closedir($handle);
}
asort($dates);
foreach ($dates as $key=>$value) {
    $file = $files[$key];
    $date = date('Y-m-d', $value);
    echo "<p><a href='$file'>$file ($date)</a></p>";
}
Ez pdf kiterjesztésű fileokat szedeget ki egy könyvtárból és rendezi dátum szerint majd kiírja a fileok nevét és létrehozási dátumát. Ezen már el tudsz indulni remélem...

Éljenek az okos főnökök (mert így ugye csak kiderül, hogy nekik van igazuk és tud az ember ha akar :)
17

Még egyszer köszi a segítséget...

szogedi · 2008. Jún. 24. (K), 15.41
Családos ember lévén 31 évesen arra kellett rájönnöm, hogy mindig annak van igaza, aki a pénzt osztja. Ha pirosra akarja festeni a holdat és fizet érte, meg kell próbálni ugyebár. Még akkor is, ha az a világ legnagyobb marhasága. Hisz ha meg sem próbáljuk, akkor közben fizetni sem fog, márpedig pénzből élünk mindannyian. Abból nevelkednek fel a gyermekeink.