Hirdetés

Keresés

Új hozzászólás Aktív témák

  • Aethelstone
    addikt

    Köszi mindenkinek a válaszokat!

    A lényeg ugye az lenne, hogy az applikációtól független path-on elérhető képeket rakjak ki (tehát pl. ide a relative path nem igazán értelmezhető).

    Az most mindegy, hogy honnan szedem a fájlok elérési útjait, a problémám konkrétan az, hogy azok most is jók (külön beírva akár böngészőbe ezeket, megjelennek a képek, míg az oldalon beágyazva ugyanezzel az elérési úttal nem). Először ezt a bagatellnek tűnő hibát próbálom megoldani.

    Nyilván tök ugyanezzel a kóddal - ha a webapp saját folderébe teszem a képeket és így relatív pathszal hivatkozok rájuk, megjelennek, tehát nem a megjelenítő kóddal lesz a baj.

    Nah. Ha a böngészőbe berakod a "c:\Temp\akarmi.jpg" linket, akkor a böngésző megnyitja a Te fájlrendszeredből. Ugyanez egy webalkalmazás esetén nem működik. Ott ugye jó eséllyel a webalkalmazás valahol a világ másik végében van. Ezért a "c:\Temp\akarmi.jpg" hivatkozás valahol a webalkalmazás "WEB-INF\c:\Temp\akarmi.jpg" könyvtárában keresgél. Szerintem.

    Ezért vagy http://www.akarmi.com\temp\akarmi.jpg formában rakd be a képet, ahol is a http://www.akarmi.com\temp a távoli gép megfelelő, képeket tartalmazó könyvtárára mutat vagy pedig base64 enkódold a képet, mielőtt az oldalt összerakod és a base64 enkódolt kép legyen beágyazva.

    <img src="data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUA
    AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
    9TXL0Y4OHwAAAABJRU5ErkJggg==" />

  • Aethelstone
    addikt

    Sziasztok!

    Egy egyszerű, Tomcaten futó Java EE webappban akarok egy galériát létrehozni (szóljatok ha már rosszul indultam el).

    Simán egy külső folderből akarom felolvasni a képfájlokat, és kirakni az oldalra.

    Hogyan tudom ezt transzparensen csinálni? (tehát hogy ne C:\Temp\images-t kelljen mondjuk a graphicImage-nél használnom, vagy legalábbis a kódban ne így jelenjen meg?

    Amire most én gondoltam, nagyon naiv próbálkozás, de legalább nem is működik :DDD

    File f = new File("C:\\Temp\\images");
    images = new ArrayList<>();//a view Bean változója, String ArrayList

    for (File img : f.listFiles()) {
    images.add(img.getAbsolutePath());
    }

    <h:form>
    <c:forEach var="item" items="#{imagesView.images}">
    <h:graphicImage value="#{item}" cache="false" />
    </c:forEach>
    </h:form>

    A kódban szépen látszanak a képek elérési útjai, csak "simán" kimásolva és azt beillesztve a címsorba meg is jelennek, de magán az oldalon viszont nem jelennek meg a képek. És gondolom ennél rondább és amatőrebb módja nem is lenne ennek. google-ba beüthető kulcsszavakat is megköszönök a "gondold át hogy mit műveltél" kommentek mellé :)

    Pl egy generált kóddarab:

    <img src="C:\Temp\images\DSC_0020_th.jpg" />

    Estleg base64 enkódolva is berakhatod és akkor nem kell az útvonallal bohóckodni.

  • Froclee
    őstag

    Sziasztok!

    Egy egyszerű, Tomcaten futó Java EE webappban akarok egy galériát létrehozni (szóljatok ha már rosszul indultam el).

    Simán egy külső folderből akarom felolvasni a képfájlokat, és kirakni az oldalra.

    Hogyan tudom ezt transzparensen csinálni? (tehát hogy ne C:\Temp\images-t kelljen mondjuk a graphicImage-nél használnom, vagy legalábbis a kódban ne így jelenjen meg?

    Amire most én gondoltam, nagyon naiv próbálkozás, de legalább nem is működik :DDD

    File f = new File("C:\\Temp\\images");
    images = new ArrayList<>();//a view Bean változója, String ArrayList

    for (File img : f.listFiles()) {
    images.add(img.getAbsolutePath());
    }

    <h:form>
    <c:forEach var="item" items="#{imagesView.images}">
    <h:graphicImage value="#{item}" cache="false" />
    </c:forEach>
    </h:form>

    A kódban szépen látszanak a képek elérési útjai, csak "simán" kimásolva és azt beillesztve a címsorba meg is jelennek, de magán az oldalon viszont nem jelennek meg a képek. És gondolom ennél rondább és amatőrebb módja nem is lenne ennek. google-ba beüthető kulcsszavakat is megköszönök a "gondold át hogy mit műveltél" kommentek mellé :)

    Pl egy generált kóddarab:

    <img src="C:\Temp\images\DSC_0020_th.jpg" />

    öö miért nem relative path?

  • bambano
    titán

    Sziasztok!

    Egy egyszerű, Tomcaten futó Java EE webappban akarok egy galériát létrehozni (szóljatok ha már rosszul indultam el).

    Simán egy külső folderből akarom felolvasni a képfájlokat, és kirakni az oldalra.

    Hogyan tudom ezt transzparensen csinálni? (tehát hogy ne C:\Temp\images-t kelljen mondjuk a graphicImage-nél használnom, vagy legalábbis a kódban ne így jelenjen meg?

    Amire most én gondoltam, nagyon naiv próbálkozás, de legalább nem is működik :DDD

    File f = new File("C:\\Temp\\images");
    images = new ArrayList<>();//a view Bean változója, String ArrayList

    for (File img : f.listFiles()) {
    images.add(img.getAbsolutePath());
    }

    <h:form>
    <c:forEach var="item" items="#{imagesView.images}">
    <h:graphicImage value="#{item}" cache="false" />
    </c:forEach>
    </h:form>

    A kódban szépen látszanak a képek elérési útjai, csak "simán" kimásolva és azt beillesztve a címsorba meg is jelennek, de magán az oldalon viszont nem jelennek meg a képek. És gondolom ennél rondább és amatőrebb módja nem is lenne ennek. google-ba beüthető kulcsszavakat is megköszönök a "gondold át hogy mit műveltél" kommentek mellé :)

    Pl egy generált kóddarab:

    <img src="C:\Temp\images\DSC_0020_th.jpg" />

    előrebocsátom, hogy tomketet nem használtam még...
    glassfishben ennek a rossz verziónak az a szép megoldása, hogy a glassfish környezeti változói közé felveszed, hogy hol vannak a képek, és azt lekéred jávából.

    a helyes megoldás szerintem az, hogy nem a fájlrendszerből veszed ki a képek listáját, hanem amikor a képek odakerülnek, akkor egy adatbázisban adminisztrálod, hogy mi került fel és hova lett lerakva.

  • bucsupeti
    senior tag

    "Van egy kilépés gomb a formon" Rakd külön formra a kilépés gombot, legalábbis ha úgy van ahogy írod ("a" formon), bár lehet hogy túl triviális dologra gondolok, de én is futottam már ebbe :)

    Köszi! Így valóban nem fut le az a kismillió select!

    Mondjuk az okára kíváncsi vagyok. Arra gondolok hogy ilyenkor egy submit szerű dolog fut, ami miatt a form minden komponense inicializálódik. Azt gondoltam hogy a gomb immediate="true" tulajdonsága kikerüli ezt, de ezek szerint nem.

    Mindenesetre a workaround működik! Köszi mégegyszer

Új hozzászólás Aktív témák

Hirdetés