Hei!
Onko mahdollista saada kuvaa sivulle sillai, että sen pystyisi käyttäjä lataamaan sieltä, ilman, että sitä joutuisi pakkaamaan?
On mahdollista. Joko upotat kuvan sivulle img-tagilla tai linkität siihen a-tagilla. Molemmissa tapauksissa käyttäjä pystyy lataamaan kuvan helposti omalle koneelle.
Käyttäjälle on kaikista helpoin tällainen.
sivu.php
Lataa tiedosto tästä: <a href="lataa.php">Lataa</a>
lataa.php
<?php $file = 'monkey.gif'; // tuohon laitat siis sen tiedoston nimen if (file_exists($file)) { header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename='.basename($file)); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . filesize($file)); ob_clean(); flush(); readfile($file); exit; } ?>
PHP-koodi on täältä: https://www.php.net/manual/en/function.readfile.
Jos tarkoitat GD-funktioilla luotua kuvaa, voit tulostaa sen skriptistä näin:
<?php $img = imagecreatetruecolor(64, 64); header("Content-Type: image/png"); imagepng($img);
Sivulle tulee siis img-tagi, jossa on osoitteena kuvaskripti:
<img src="kuvaskripti.php" alt="" title="PHP-kuva" />
Kiitos vastauksista, tämä ollin koodi kuulosti oikeailta, mutta en saanut sitä lataamaan tiedostoa.
<?php $file = $_GET['kuva']; // tuohon laitat siis sen tiedoston nimen echo $file; //tämä kyllä löytää sen oikean tiedoston, testiksi echotin sen. if (file_exists($file)) { header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename='.basename($file)); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . filesize($file)); ob_clean(); flush(); readfile($file); exit; } ?>
ja sitten se linkki on tällainen:
Lataa tiedosto tästä: <a href=\"index.php?sivu=lataa&kuva=$kuva\">Lataa</
Mikähän mahtais olla vikana?
Tarkista, että koodit ovat oikeissa tiedostoissa (sivu.php, lataa.php jne.), sitten.
Rivillä 17 laita }-merkin jälkeen seuraavanlainen koodi:
Mikäli skripti palauttaa Tiedostoa ei löydy, katso että kuva on varmasti oikeassa paikassa.
Sen lisäksi linkin pitäisi olla:
<a href=\"lataa.php?file=$kuva">Lataa tiedosto!</a>
eikä
<a href=\"index.php?sivu=lataa&file=$kuva">Lataa tiedosto!</a>
Sinä et voi tulostella mitään roskaa samassa skriptissä, pelkästään syöttää tiedoston datan. Mietihän hetki. Lisäksi tuon viritelmäsi tietoturva on täysi nolla, koska nyt tarjoilet minkä tahansa tiedoston saataville.
Joo polku näköjään unohtui merkitä.. mutta nyt tuleeki sitten tällainen teksti sivulle, kun laittaa lataa linkkiä:
‰PNG � IHDR@@��ªiqÞ�sRGB®Î�é�bKGDÿÿÿ ½§“ pHYs�Ã�Ã�Ço¨d�tIME�Ú������4ί ·IDATxÚí[Ko�ÕÖ]§ÞÕ/wÛ8¶‰‡"&A8R&(ò€�B�1aðý�þA~ s#Á�1‡I$$äÄCD �%Jd›6írwu×»ºÎ7¸¬}O;ä&v’ûÁ‡[jÅêGõ9kï½ÖÚûTöÖ�ÿ䇅�øã�€sÎ�8�à�€sÎ�8�à�€�êÃyU�ÞÙÙYh2îÞ½«þŠ¨—Ñ�™›õ<�Žã`>Ÿcee�0��åõ~¿;wî¨ÿ7póß|ó .]ºäíím(¥ày�‚ €ã8Ȳ�Y–¡®käyŽÑhä��� Š"õ·�€›_^^†Ö�ý~�½^�J)(¥à8�lÛF–e(Ë�–e!MSÌf3Ìf3dYö�^�/�Àææ&:�š¦ÁÒÒ�|߇ïûÿºø�@Ìçs�E�5š¦‘,8<<ÄÊÊ >ûì3õ·#AFß²,ôû}‰¶çyO|Ö¶m´Z-@Ó4°m�iš"MSìïïãÊ•+úáÇêo�À[o½…ñx,�ô}�–õoUÕZƒÙÅL `a�¢Ýnckk�ZkŒF#|øá‡úÎ;Š@�Àññ1>øà�$‰¼V��꺆ëºhµZ�Ãð…Êè…|@¿ß‡Ö�óù�u]c>ŸËÆ›¦AÓ4ò^Ó4�€ôz=�A€µµ5\½z�ív{áûI’`wwW���À¶m)º®Q×5²,Ãt:E�EOHî��€��ü��†!ʲDš¦�@ðI�ªª’ *¥àû>.\¸ Yqttä¦izZk�E»wïâÓO?E§ÓA�†�‚¾ïÃó��/däò<‡ã8(Ë�¾ï£®kض-µÎÍ2ª&á6M#¾áðð�–e!Š¢Ø÷}ìïïcwwWgY†ÕÕUhá8�<ÏC]×HÓ��ªª*¸®‹¢(Ð4 vvvôiJâÌöe‰Ùl†v»¦i ö‚ëºRïæÆ FUU°,�–eA)…Ñhä²,Q–%â8Æîî.nݺ…/¾ø�÷îÝC¿ß‡ïûPJÁ¶m(¥$ lÛ^¸N]×PJa:Âó¼Spf�ÜÞÞÖ����Ã�N�A� Óé,,Ž)�`¡$öR°,�£Ñ�GGG888Àp8Džçð}�ý~�+++’ú&J)�E$I$ãâ8Æññ1š¦Áòò2à‡�~P¯¼�¢(B���‚@j2§ö’Èóß²,E5â8Æd2Át:E]×ÐZ#��ôz=´Z-ض-×1ÿ¶,KÊ&Ë÷}TU…4M1�áû>¶··õó€pf<ÏÃl6�V6ÕÀq�� ª*ÏðïápˆÙl&eÁÍ1ƒLéäßì'öR�‚u]ò,äyŽn·�˲Är§iúj9 ��ŒÇcIuJSY–"[LQ×u‘ç9´Ö˜L&�Ç’�¶m˦¨�eY.d•Iœív[ú�³4^{í5ض 5Ò4EQ�xã7ô¯¿þª^:ï¾û®ÖZ/DÎ\< p>ŸÃ÷}±Âãñ�“É�yž#�C±Ì¦DÒD�E!îr>ŸËoåy.¼à8Žö�ɲ,KQä²,Ÿ ‚sÖè'I�ÏóD‚Ø�WU%Ñ$C×u$I�Çñ��0b¦d2c´Öò]ÇqDQæó9’$ëºò:t»]Q 5â8�ù|©Fhoo�iš¢ª*xž�˲0™Le�ªªBUU¨ë�eYb>Ÿ#Žc���a4�I�ÈžÁT�˲D�͈›*U×µL"dÛmÛ6ÖÖÖÐï÷���Z�,ËB]׸~ýº~i�ðøñcL§STU%µËÅ1ò¬ý¢(0™LD²øð}_<� �³…š‘3 –›'@��3ðÂ…�H’Dd7MSɺ—�Àææ¦D‰ ©û䀢(d�BË̆a(éÏçÓ˜Ÿ¥@°XfEQ<1w�‚Zk���YcUUÈóü©²x&Xó–e¡ÝnÃó<äaˆ¢(Ä��yn˜|aF¦ˆDjv“&ó3³HˆÜ�_çu]×E§ÓA¯×�‰æ{öã—Ò�1ú½^�ƒÁý~_úý²,‘$‰0±ïûhµZèt:ð}�A�È¢Ì�·,k!#L�•ç9’$Aš¦ò:Ë…YÇŒ£Ga™™ ýY³ôÌ�0�“e�‚ šó}_R϶mTU%õ®µ– ·Z-¸®+’ÅšfJ›éÎ6š@ÔuÉd²PB½^Ox‡žƒegf�ÛjÛ¶Ÿ:7pž'ÚF_�îííe—/_–ˆ8Žƒ �ðûï¿ãáÇbP|ßG�†âç)Y'7ÍôlšF���žÄWU•È$?ﺮð�ÿ¥DFQ$ªÄߦç8u °çþ#ªYQ�øè£db�q�c���q�£i�¸®‹0�ÑjµÐn·¥?Ù-šö—ÚÏöÎó�“ÉD®™¦)¦Ó)f³�Æã1¢(BY–�¥@ÖŸL&(ŠBˆÒuݧ�ðÌ�Èó<Ìó<�‚ ÔZg¾ïc}}] ��}||Œ(Š°¿¿<Ï1ŸÏ¥+ìõz2Ì0Ça¦¶›3È�I’Àq�É�¥�f³�Š¢@š¦XYYïû�ø`0�¦Ó©Ì XrOkŸ™�ý~?ûÃçgœì®®®ââÅ‹Ÿ*¥ðÛo¿a:Ê‚ @·ÛE¯×[@ž’u�ŽÌØ�P X�4Mt�UUa<�K�]×5¦Ó)†Ã!îß¿8Ž‘ç9àòåËøþûïÏn…oÞ¼©¯\¹‚?þXmllÈÄgccã�èñx,©æû>ÚíöBí—e)fçä¦Íögô©é¯¿þº08ŸìüÈ�,«$I䩵ƥK—ÔÛo¿÷Þ{�×®];{7xãÆ í8�êºÆ'Ÿ|¢ß�ÿ}\¿~]Ñòæy.�â\€rWU�f³™0¹9�# MÓ I�Ìf3aw×u±¾¾ŽV«%�烤–$‰d�»Æ¦iày�nÞ¼©Þyç�ܺu��Øœ €�Ýétdtö—_~‰¯¿þZ‡aˆ��� MSñóŽã ×ë¡i�L&�IY×u…åù9ŽÇ����E‘�˜¥¥%!M~n>ŸÃq�¹�åµ,KL&�Ôun·+flee�+++ÒžÓz?)ú�°µµ�âöÒ4Å£Gdáft\×�Ù¤ÜqÁ–eIý²5Ž¢�ÇÇÇp]�ý~�ý~_ã†YnÝnW�i:.Ì�ØXu»]4MƒŸ�þY�E¡È%[[[Èó�·oß~~LÇDëJ2[^^†ã8�ÃP†š\Ìl6�Ý=y2D.Š�q�ËÄÆó9†b¯ÍÚ晳�öüÌ�Žª8 ãµM¶'(VKØß�%Š"DQ$k3Goa�J�@�GR=³ ‰I2KKKb-©ïq�#Š"Äq,Ú˨s4FÓÂ��Ó¥i*ö6��9d Ã�UU!Ë2)+š�f��3×uE��ÆÞF‡ùÜaÛí¶07‰äs¹n·+›2#A³b��{}sbDâ�ÃPÌmÛòš9a2ÕÚí6Úí6ʲöR+Ë�®ë>q"Å›\õL¶··õææ¦|É�E™ädÎûH‚ƒÁ®ëb4�a2™��š‡�Ü�OŒ9ÍekÍÖ™ó¿“£uþ�Çàæ@Å�Íó5øî»ïÔ™Gbf{ʨšŒÎ�³^é�™=lš�¢©��‚‡+Vë‰SenÜŒ¬9K,ËRÖ`ô,ò�ÍÜ©`TY¿f'F'ÇL`WÆQ�G_fï_�ÅBßÏ9�7irF�E²iSMÌ£¶,ËäT9n7›"sÈÊFì¹K Ïs<~ü�ƒÁ@\�ký$¹¤è�™²t…ìÕ�=Ê)Áá&Í;IÖÖÖ�|nˆŒo�@(½�`0#�@·Û= öe)LNÖ·,KH°Ýn?Á°Ü ÏõÈöŒGc½^O��'6,�³cÔZËɳÙ?Ð�‡aˆ¦i$åi©y Âïq`óŸ�J?›ÁÍçsdY†8Ž…ð(Q'³€�¤? ´±VMÇÆ9�¿ÃRâûæ! ³‘¥#5kÌ�\×Eš¦H’dáL€¿ËL³�$'œöÂŒ�5Ý®]»¦Ÿ—K<Ïý{÷^ÉÍÔêŸþßçÿ�ûL õ��ÞIEND®B`‚
Edit. ei näytä juurikaan selvemmältä
Lue aiemmat viestit, ongelma saattaa ratketa.
The Alchemist kirjoitti:
Sinä et voi tulostella mitään roskaa samassa skriptissä, pelkästään syöttää tiedoston datan.
Petja kirjoitti:
Sen lisäksi linkin pitäisi olla:
<a href=\"lataa.php?file=$kuva">Lataa tiedosto!</a>eikä
<a href=\"index.php?sivu=lataa&file=$kuva">Lataa tiedosto!</a>
Jahas, toi auttoi, mutta miksi se ei onnistu tuolla mun systeemillä? :)
Olethan ottanut tuon echon jo pois? Se on mahdollinen syypää.
Sen lisäksi tietoturvaa voisi parantaa:
//index.php $salasana="omena"; //Keksi tähän jokin salasana $hashed=md5($salasana.$file); print "<a href=\"lataa.php?file={$file}&hash={$hashed}\">Lataa</a>"; //lataa.php $hash=$_GET['hash']; $file=$_GET['file']; $salasana="omena"; //Sama salasana kuin edellisellä sivulla if(md5($salasana.$file)==$hash) { //Itse latauskoodi tähän }else{die "<strong>Tietomurtoyritys!</strong> Tiiviste ei vastaa tiedoston nimeä.";}
Sovella koodi omaan käyttöösi.
Vaihda koodissa oleva salasana joksikin muuksi, äläkä anna sitä kenellekään!
P.S. Koodia en ole testannut, enkä voi taata sen toimivuudesta. ;)
Kiitos vinkistä :) nyt se onnistuu. Tietoturvaahan ei oo koskaan liikaa :) mutta en tiedä sitten ehän tosta mitään haittaa oo, vaikka sivulle pitää kirjautua sisään :)
Tuossa koodissa ei tarvitse mitenkään kirjautua. Keksit vaan jonkun sanan ja laitat ne niille varatuille paikoille. That's it!
Sinulta ei kysytä salasanaa missään vaiheessa, millään tavalla, mikäli koodiani käytät.
Petja: Helpompi tapa olisi tarkistaa ladattavan tiedoston polku vaikka funktion realpath avulla, eikä tehdä hash-virityksiä, jotka ovat kaiken lisäksi helpompia murtaa.
Petja: ja esimerkkeihin "omena" -sanan tilalle kuuluisi laittaa
$salasana = "2hUT=a@a+raN";
Vaikka kerrotkin tuolla, että käyttäjän kuuluu itse keksiä "jokin salasana", niin esimerkkinä olisi hyvä heittää jokin tuommoinen vaadittavan vahvuinen salasana tilalle.
edit:
Myöskin turhat "Tietomurtoyritys!"-tasoiset viestit kannattaa suosiolla unohtaa. Pelkkä ilmoitus väärästä tiivisteestä riittää tai vastaavasti 404 Not found -ilmoitus.
Olisi hauska nähdä jonkun peruskäyttäjän ilme, joka avaisi vanhentuneen linkin ja eteen tulisikin "Tietomurtoyritys!" -viesti...
-tossu- ja Lebe80, olette ihan oikeassa.
Tein tuon vaan aikani kuluksi, enkä nyt ajatellut jokaista yksityiskohtaa.
Huomasin myös itse, että ei tuo mitään suojaa, elleit index.php:ssä tarkisteta, kuuluuko tiedosto "sallittujen listalle". Sillä jos lataussivu on muotoa index.php?sivu=download&file=rand.om
, voi kuka tahansa vaihtaa urlia file=examp.le, file=jo.ku, file=pakattu.zip
jne.
Joten jos tältä haluaisi välttyä, tulisi laittaa tietokantaan lista sallittavista tiedostoista ja antaa kullekin ID, jolloin lataus tapahtuisi tämän ID:n avulla.
Ette tietenkään ymmärtäneet mitä tarkoitin, mutta väliäkö tuolla...
Onko tämä ihan väärin muodostettu tosta realpathista?
<?php $path = "/home/******/kotisivut/kuvat/kuva.png"; $polku = realpath('kuvat/kuva.png'); if($polku == $path){ echo "kelpaa"; } else{ echo "ei kelpaa"; } ?>
onko mitenkään mahdollista saada laitettua tietokanta kyselyä tuonne tähän tapaa:
if (file_exists($file)) { header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename='.basename($file)); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . filesize($file)); ob_clean(); flush(); readfile($file); $kysely = $yhteys->prepare("INSERT INTO lataukset (tiedosto) VALUES (?)"); $kysely->execute(array($file1)); exit; }
, koska haluan vähän lataustilastoja.
dartvaneri kirjoitti:
Onko tämä ihan väärin muodostettu tosta realpathista?
Ei, mutta tuossa koodissa testistä ei ole mitään hyötyä.
dartvaneri kirjoitti:
onko mitenkään mahdollista saada laitettua tietokanta kyselyä tuonne tähän tapaa:
On mahdollista. Koodisi näyttää jopa ihan toimivalta, kunhan siihen lisää tietokantaan yhdistämisen ja muuttaa $file1-muuttujan $file:ksi .
Miten se pitäisi tehdä että siitä olisi hyötyä?
Koodin yläosa:
<?php include('yhteys.php'); $file1 = $_GET['kuva']; $file = "kuva/$file1";
että kyllä yhteys on muodostettu, ja toi $file1 on sen kuvan nimi ja $file on se polku missä se kuva on. Mutta selain näyttää palvelin virhettä.
Jos haluat, että vain /home/******/kotisivut/kuvat
-kansiossa olevia tiedostoja voi ladata, tarkista, että realpathin palauttaman polun alku on em. Polun alun saat vaikka substr-funktiolla.
Mitä jos vaikka laittaisit sen virheilmoituksen tänne putkaan.
Niijoo, tuolla tavallahan se onnistuu :) ja sitten vielä tiedosto päätteen tarkistaa.
ei tule muuta kuin
HTTP-virhe 500 (Internal Server Error): Palvelin kohtasi odottamattoman tilan yrittäessään toteuttaa pyyntöä.
eli se ilmoittaa jostai syntaksi virheestä..
dartvaneri kirjoitti:
Onko mahdollista saada kuvaa sivulle sillai, että sen pystyisi käyttäjä lataamaan sieltä, ilman, että sitä joutuisi pakkaamaan?
Kaikista asioista voi tietysti tehdä ison ongelman, mutta normaalisti riittää, että sivulla on kuva, joka on upotettu siihen img-elementillä. Ne, jotka eivät osaa klikata hiiren oikealla painikkeella ja valita öTallenna kuva nimelläö, eivät luultavasti kuitenkaan tekisi kuvalla mitään.
Jos taas kuva on hyvin iso, niin yksinkertainen linkki on todennäköisesti huomattava parannus kaikkiin hienosteluihin verrattuna:
<a href="kuva.jpg">Kuva napanöyhdästäni</a> (4000×3000 pikseliä, 5 megatavua)
(Tuohon voi tietysti haluttaessa lisätä sellaisen hardcore-jutun kuin esimerkiksi 40×30 pikselin esikatselukuvan.)
Mutta kun sivulle tulee paljon kuvia, juuri lataus tarkoitukseen, niin mielestäni olisi hyvä jos on linkki että lataa tästä. Kuvien koot on sitten sielä 9 mt luokkaa (järkkärillä otettuja kuvia)
Kokonaisuudessaan se lataa.php:n koodi on tällähetkellä tallainen:
<?php include('yhteys.php'); $file1 = $_GET['kuva']; $file = "kuva/$file1"; if (file_exists($file)) { header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename='.basename($file)); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . filesize($file)); ob_clean(); flush(); readfile($file); $kysely = $yhteys->prepare("INSERT INTO lataukset (tiedosto) VALUES (?)"); $kysely->execute(array($file1)); exit; } else{ print("Tiedostoa ei löydy!"); } ?>
mutta aina vaan heittää palvelin virhe 500:sta.
Mutta ilman tota kyselyä se toimii. Mikä tossa mahtaa olla vikana?
Hmm... Virhe saattaa johtua, että olet yhdistänyt väärin, mutta silloin yleensä pitäisi PHP:n herjata. Koska nyt palvelin tuon sanoo, asiaa onkin hankalampi ratkaista. Laitapa se koodi, jolla yhdistät tietokantaan. Salasanat ja tunnukset voit piilottaa.
Ja näin yleisenä vinkkinä asiasta poiketen kannattaa käyttää
$file = "kuva/".$file1;
tai
$file = "kuva/{$file1}";
sen sijasta, että
$file = "kuva/$file1";
Tulet varmasti myöhemmin huomaamaan, miksi.
dartvaneri kirjoitti:
Mutta kun sivulle tulee paljon kuvia, juuri lataus tarkoitukseen, niin mielestäni olisi hyvä jos on linkki että lataa tästä.
Linkin nimenä öLataa tästäö on... heikko.
Jos on paljon kuvia, niin sitten ymmärrän, että halutaan generoida linkit automaattisesti, mutta kerropa, miksi pitäisi generoida muuta kuin normaaleja linkkejä
.
Miksi kuva pitäisi tarjota määrittelemättömänä binaaridatana (application/octet-stream) eikä kuvadatana? Onko tarkoitus yrittää estää hakukoneita käsittelemästä kuvia kuvina vai yrittää estää se, että käyttäjä avaa linkin suoraan kuvankäsittelyohjelmaan?
Entä miksi haluat ehdottomasti saada aikaan sen, että jos yksi käyttäjä on juuri ladannut kuvan, niin toinen ei missään tapauksessa saa kuvaa saman palveluntarjoajan cachesta, kun yrittää viisi sekuntia myöhemmin? Siis haluat ehdottomasti tahmata palvelintasi ja sen tietoliikenneyhteyttä, jos kuvasi sattuisivat saamaan suosiota. Sitähän nuo cache-yritelmät lähinnä merkitsevät.
Minua ainakin ärsyttää suunnattomasti ne huonosti suunnitellut sivut, jotka syöttävät kuvat sekalaisena binäärimössönä kuvan sijaan. Usein kyse on tosin väärin konfiguroidusta palvelimesta eikä tarkoituksellisesta toiminnasta. Minä en halua latailla kuvia koneelleni vaan esikatsella niitä selaimessa. Jos jokin kuva on niin hyvä, että haluan sen erikseen tallentaa, niin sitten teen sen ihan itse.
<?php try { $yhteys = new PDO("mysql:host=localhost;dbname=****", "****", "****"); } catch (PDOException $e) { die("VIRHE: " . $e->getMessage()); } $yhteys->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); ?>
Mutta ottaen huomioon sen asian, että moni tavallinen tallaaja, joka osaa käyttää koneella vain nettiä, haluaa sen kuvan, ei sitä välttämättä osaa kopioda, vaan saa kuvan ainoastaan lataamalla.
dartvaneri kirjoitti:
Mutta ottaen huomioon sen asian, että moni tavallinen tallaaja, joka osaa käyttää koneella vain nettiä, haluaa sen kuvan, ei sitä välttämättä osaa kopioda, vaan saa kuvan ainoastaan lataamalla.
Jos suuri osa sivun kävijöistä on peruskäyttäjiä, voi esim. linkin tai kuvan viereen kirjoittaa ohjetekstin tyyliin "Tallenna kuva painamalla oikealla korvalla ja valitsemalla 'Talenna nimellä'". Kuvan tallennuksen pakottaminen header-kikkailulla kuitenkin ärsyttää monia.
Onko kuvan laadussa sitten mitään eroa, jos sen kopio tai lataa? Kuvan laatu nimittäin on tärkeää, sillä ei ne kuva todellakaan ole mitään pokkari kuvia, vaan ihan ammattitason kameralla kuvattuja.
dartvaneri kirjoitti:
Onko kuvan laadussa sitten mitään eroa, jos sen kopio tai lataa? Kuvan laatu nimittäin on tärkeää, sillä ei ne kuva todellakaan ole mitään pokkari kuvia, vaan ihan ammattitason kameralla kuvattuja.
Riippuu siitä, mitä tarkoitat kopioimisella, mutta oikean korvan valikosta tallentaminen ei huononna laatua mitenkään.
Kaikki tiedonsiirto netissä on kopioimista. Ei ole mahdollista siirtää tietoa kopioimatta sitä. Eikä kuvia todellakaan tallenneta kopioimalla niitä jonnekin Paintiin ja tallentamalla uudestaan, vaan ihan suoraan tallentamalla kuva.
Ja tässä kun on kyseessä high-res kuvat niin tähdennetään, että tee kuvista thumb-versiot (pikkukuvat), joista linkkaat alkuperäisiin, ettei käyttäjän tarvitse ladata kerralla kaikkia high-res kuvia.
Kannattaa pitää erillään kuvien lataus koneelle ja niiden näyttö käyttäjille.
Latauksessa voit käyttää header-viritelmää ja lähettää täyden laadun kuvan. Ja kuten tsuriga sanoi, sivujen käyttäjille voit tehdä pienemmät kuvat joita sitten voi netistä katsella.
Joo toi tsurigan idea on hyvä, mutta olen useaan otteeseen yrittänyt, mutta thumbnailit ei vaan oikeen tahdo onnistua.
Voin kertoa sen, ettei kukaan jaksa kuviasi katsella, jos ainoa vaihtoehto on useiden megatavujen lataaminen ja tallentaminen koneelle. Tekisi mieleni kutsua tuota jopa idioottimaiseksi ratkaisuksi. Kuvat täytyy saada selaimeen auki juuri niin kuin on tarkoitettu, muuta sälää kehitellään siihen ympärille vain pakon sanelemana.
dartvaneri: kokeilepas tämmöistä valmista kikkaretta:
http://phpthumb.sourceforge.net/
Aihe on jo aika vanha, joten et voi enää vastata siihen.