Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Kuvan koon tarkistaminen

Sivun loppuun

Macro [05.08.2010 13:20:16]

#

Moi

Käyttäjä lähettää kuvan, ja ohjelman pitäisi saada tietoon kuvan koko (korkeus, leveys) ennen kuin se tallennetaan serverille. Onko tähän jotain ratkaisua, vai teenkö sen siten, että tallennan sen, tarkistan koon ja jos se ei ole tarpeeksi pieni, niin poistan?

Metabolix [05.08.2010 13:57:14]

#

Oletan, että puhut tavallisesta PHP-sivusta. Juuri noin se on silloin käytännössä pakko tehdä, koska PHP-skripti ajetaan vasta lähetyksen jälkeen. PHP:n asetuksista voi lisäksi rajoittaa tiedoston maksimikokoa tavuina.

Käyttäjän puolella tarkistuksen tekeminen vaatisi esim. Flashilla tai Javalla toteutettua "lomaketta", ja tästä on luonnollisesti lisää vaivaa tekijälle ja harmia käyttäjille, joilla ei ole tarvittavia laajennoksia selaimessaan.

Grez [05.08.2010 14:28:50]

#

Periaatteessa olisi tietty fiksua että käyttäjän selain tarkistaisi jo ennen lähetystä. Jossain olen tuollaisen nähnytkin flashilla tehtävänä, mutta IMO hieman overkill. Javascriptillä ei taida pystyä selvittämään lomakkeen tiedostokenttään valitun kuvan pikselikokoa.

Teuro [05.08.2010 15:27:52]

#

Tällainen näytti toimivan omalla koneellani. Pitää vaan jotenkin kopioida tuo file-kentän osoite tuon funktion parametriksi.

<html>
<head>
<title>js kuvia</title>
<script type="text/javascript">
function kuvan_koko(kuva) {
	var uusi_kuva= new Image();
	uusi_kuva.src = kuva;
	alert (uusi_kuva.width);
}
</script>
</head>
<body>
<a href="javascript:kuvan_koko('U:/DCIM/100CASIO/CIMG0115.JPG')">Paina</a>
</body>
</html>

HUOM! Alkuperäinen koodi on otettu Täältä

EDIT: Eikä tietenkään ole missään määrin toimiva suojaus / vastaava menetelmä.

pake10 [05.08.2010 16:12:43]

#

Kuvan koko kannattaa tarkistaa myös PHP-skriptissä, koska jos käyttäjä ottaa JavaScript-tuen pois päältä, eikä kokoa tarkisteta PHP-skriptissä käyttäjä voi upata vaikka gigatavun kokoisen kuvan palvelimelle, jos vain tilaa riittää.

Teuro [05.08.2010 16:41:48]

#

pake10 kirjoitti:

käyttäjä voi upata vaikka gigatavun kokoisen kuvan palvelimelle, jos vain tilaa riittää.

Noh ei nyt sentään, mutta php.ini tiedostossa asetetun maksikoon kylläkin, joka taitaa olla pienempi kuin 1 Gigatavu :) Ja mainitsin asiasta kyllä viestini lopussa, että ei ole missään määrin luotettava menetelmä.

Macro [05.08.2010 17:21:40]

#

Ei ollut tarkoitus tarkistaa kuvan koka esim. megoissa, vaan kuvan leveys ja korkeus. Tein sen niin kuin ensimmäisessä viestissä mainitsin, lataan kuvan ensin palvelimelle, tarkistan koon ja poistan ylisuuren kuvan tapauksessa.

Grez [05.08.2010 17:54:42]

#

Joo, toki tuo javascript-kommenttini olikin tarkoitettu lähinnä käytettävyyttä ajatellen. Kaikille ei välttämättä ole selvää että mitä tarkoittaa vaikka 800x600 ja sitten on vähän ärsyttävää hitaalla yhteydellä parin minuutin odottelun jälkeen saada ilmoitus, että "kuva on liian suuri" kun on yrittänyt laittaa 10 megan kuvaa suoraan digikamerasta :D Tietenkään se ei poista tarvetta tarkastaa myös palvelimelle (kuten tässä on mainittukin)

-tossu- [05.08.2010 20:04:41]

#

Tuo javascript-viritys ei toimi jos sivu on netissä ja kuva omalla koneella.

pistemies [09.08.2010 14:05:27]

#

Jos tuossa laittaa käyttäjälle tarkoitetun viestin, niin se kannattaa tehdä vasta TOSI suurista kuvista, yli 10 megatavua :D
Nimittäin kun sen kuvan voi pienentää sopivaksi, sellaiseksi mikä sivulla halutaan näyttää.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta