{"id":25863,"date":"2021-06-15T14:09:00","date_gmt":"2021-06-15T11:09:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=25863"},"modified":"2021-10-17T20:16:48","modified_gmt":"2021-10-17T17:16:48","slug":"lataa-kuva-php-n-bulletproof-library-kirjastolla","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fi\/lataa-kuva-php-n-bulletproof-library-kirjastolla\/","title":{"rendered":"Lataa kuva PHP: n Bulletproof Library -kirjastolla"},"content":{"rendered":"<p>Kuvan lataaminen palvelimelle on kehitt\u00e4jien yleinen teht\u00e4v\u00e4. Yksi on saattanut tehd\u00e4 t\u00e4m\u00e4n teht\u00e4v\u00e4n satoja kertoja. T\u00e4m\u00e4n latausprosessin aikana kehitt\u00e4jien on huolehdittava seuraavista asioista.<\/p>\n<ul>\n<li>Tarkista, onko l\u00e4hetetty tiedosto kuva<\/li>\n<li>Luo hakemisto, johon kuvat tallennetaan<\/li>\n<li>Luo jokaiselle kuvalle yksil\u00f6llinen nimi, jotta se ei korvaa olemassa olevaa kuvaa samalla nimell\u00e4.<\/li>\n<li>Vaihtoehtoisesti voit lis\u00e4t\u00e4 kuvan ulottuvuuden vahvistuksen. Jos l\u00e4hetetyll\u00e4 kuvalla on suuri m\u00e4\u00e4ritetyn kokoinen koko, heit\u00e4 virhe.<\/li>\n<\/ul>\n<p>N\u00e4m\u00e4 ovat suositeltuja tarkistuksia, joita kehitt\u00e4j\u00e4n tulisi noudattaa kirjoittaessaan koodia. Koodiin voidaan kirjoittaa ehdot kaikille n\u00e4ille vaiheille. Mutta se vie jonkin verran ty\u00f6t\u00e4 ja koodista tulee pitk\u00e4.<\/p>\n<p>Suosittelen <a href=\"https:\/\/github.com\/samayo\/bulletproof\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Bulletproof-<\/a> kirjaston k\u00e4ytt\u00f6\u00e4, joka k\u00e4sittelee kaikki n\u00e4m\u00e4 vaiheet sinulle hupun alla. Se s\u00e4\u00e4st\u00e4\u00e4 aikaa lis\u00e4t\u00e4 logiikkaa kullekin vaiheelle ja v\u00e4hent\u00e4\u00e4 rivien m\u00e4\u00e4r\u00e4\u00e4 koodistasi.<\/p>\n<p>Bulletproof on PHP-suojattu kuvien latausohjelma, jolla on mukava API. Olemme kokeilleet t\u00e4t\u00e4 kirjastoa projektissamme ja olemme melko tyytyv\u00e4isi\u00e4 lopputulokseen. Siksi p\u00e4\u00e4tin jakaa sanan t\u00e4st\u00e4 kirjastosta lukijamme kanssa.<\/p>\n<p>Luodinkest\u00e4v\u00e4n kirjaston ytimess\u00e4 on seuraavat ominaisuudet, mik\u00e4 tekee siit\u00e4 turvallisemman.<\/p>\n<ul>\n<li>K\u00e4ytt\u00e4\u00e4 exif_imagetype() -tunnistetta todellisen kuvamimeen saamiseksi (.extension)<\/li>\n<li>Tarkistaa, onko kuvan kelvollinen korkeus \/ leveys pikselein\u00e4, k\u00e4ytt\u00e4m\u00e4ll\u00e4 getimagesize () -toimintoa.<\/li>\n<li>Puhdistetut kuvien nimet, tiukat kansio-oikeudet ja paljon muuta &#8230;<\/li>\n<\/ul>\n<p>T\u00e4st\u00e4 huolimatta katsotaanpa, kuinka kuvia voidaan ladata PHP: hen Bulletproof-kirjaston avulla.<\/p>\n<h3>P\u00e4\u00e4st\u00e4 alkuun<\/h3>\n<p>Aloita Bulletproof-kirjaston k\u00e4ytt\u00f6 asentamalla se alla olevan Composer-komennon avulla. Varmista, ett\u00e4 j\u00e4rjestelm\u00e4\u00e4n on asennettu <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composer<\/a>.<\/p>\n<pre><code>composer require samayo\/bulletproof:4.0.*<\/code><\/pre>\n<p>Luo seuraavaksi yksinkertainen HTML-muotoinen tiedosto sy\u00f6tt\u00f6- ja l\u00e4hetyspainikkeella.<\/p>\n<pre><code>&lt;form method=\"POST\" enctype=\"multipart\/form-data\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;p&gt;&lt;input type=\"file\" name=\"image\" accept=\"image\/*\" required \/&gt;&lt;\/p&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"submit\" name=\"submit\" value=\"Upload\" \/&gt;\n&lt;\/form&gt;<\/code><\/pre>\n<h3>L\u00e4het\u00e4 kuva Bulletproof Library -kirjastolla<\/h3>\n<p>Meille on asetettu kirjasto ja HTML-muoto. Lis\u00e4t\u00e4\u00e4n nyt kirjaston tarjoama koodi, joka l\u00e4hett\u00e4\u00e4 kuvan palvelimelle.<\/p>\n<pre><code>&lt;?php\nrequire_once 'vendor\/autoload.php';\n\u00a0\nif (isset($_POST['submit'])) {\n\u00a0\n\u00a0\u00a0\u00a0\u00a0$file = new BulletproofImage($_FILES);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0$file-&gt;setLocation('uploads');\n\u00a0\n\u00a0\u00a0\u00a0\u00a0if ($file[\"image\"]) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$upload = $file-&gt;upload();\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if ($upload) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo $upload-&gt;getFullPath();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} else {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo $file-&gt;getError();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0}\n}\n?&gt;<\/code><\/pre>\n<p>Olet valmis. Mene eteenp\u00e4in ja testaa se. N\u00e4et kuvasi, jotka on tallennettu &quot;uploads&quot; -kansioon yksil\u00f6llisell\u00e4 nimell\u00e4. K\u00e4ytt\u00e4j\u00e4 voi muuttaa t\u00e4m\u00e4n sijainnin jollakin muulla.<\/p>\n<p>Jos yrit\u00e4t ladata muita tiedostoja kuin kuvia, saat virheilmoituksen. Jos haluat asettaa ulottuvuuden, lis\u00e4\u00e4 vain alla oleva k\u00e4sky yll\u00e4 olevaan koodiin.<\/p>\n<pre><code>$file-&gt;setDimension(600, 400);<\/code><\/pre>\n<p>T\u00e4ss\u00e4 600 on kuvan leveys ja 400 on kuvan korkeus. S\u00e4\u00e4d\u00e4 arvot tarpeidesi mukaan.<\/p>\n<h3>Lataa useita kuvia luodinkest\u00e4v\u00e4n kirjaston avulla<\/h3>\n<p>Voit halutessasi ladata useita kuvia palvelimelle t\u00e4m\u00e4n kirjaston avulla. Se vaatii hieman muutosta yll\u00e4 olevaan koodiin. Sinun on lis\u00e4tt\u00e4v\u00e4 &#8217;useita&#8217; -attribuutti tiedostosy\u00f6tteeseen. K\u00e4yt\u00e4 my\u00f6s taulukon muotoa tiedoston sy\u00f6tteen nimess\u00e4. T\u00e4m\u00e4n j\u00e4lkeen k\u00e4ymme l\u00e4pi jokaisen kuvan ja lataamme sen palvelimelle seuraavasti.<\/p>\n<pre><code>&lt;?php\nrequire_once 'vendor\/autoload.php';\n\u00a0\nif (isset($_POST['submit'])) {\n\u00a0\u00a0\u00a0\u00a0for($i = 0; $i &lt; count($_FILES['image']['name']); $i++) {\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$arr_file = array(\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"name\" =&gt; $_FILES['image']['name'][$i],\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"type\" =&gt; $_FILES['image']['type'][$i],\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"tmp_name\" =&gt; $_FILES['image']['tmp_name'][$i],\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"error\" =&gt; $_FILES['image']['error'][$i],\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"size\" =&gt; $_FILES['image']['size'][$i],\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0);\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$file = new BulletproofImage($arr_file);\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$file-&gt;setLocation('uploads');\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$upload = $file-&gt;upload();\n\u00a0\u00a0\u00a0\u00a0}\n}\n?&gt;\n&lt;form method=\"POST\" enctype=\"multipart\/form-data\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;p&gt;&lt;input type=\"file\" name=\"image[]\" accept=\"image\/*\" multiple required \/&gt;&lt;\/p&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"submit\" name=\"submit\" value=\"Upload\" \/&gt;\n&lt;\/form&gt;<\/code><\/pre>\n<p>Se siit\u00e4! Toivon, ett\u00e4 ymm\u00e4rr\u00e4t kuvan lataamisen Bulletproof-kirjaston kautta. Jaa ajatuksesi ja ehdotuksesi alla olevassa kommenttiosassa.<\/p>\n<h4>Aiheeseen liittyv\u00e4t artikkelit<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/kuinka-ladata-ja-pakata-kuvia-laravelissa\/\" title=\"Opas kuvien lataamiseen ja pakkaamiseen Laravelissa\">Opas kuvien lataamiseen ja pakkaamiseen Laravelissa<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/kuinka-optimoida-kuvan-lataaminen-php-ssa\/\" title=\"Kuinka optimoida kuvan lataaminen PHP: ss\u00e4\">Kuinka optimoida kuvan lataaminen PHP: ss\u00e4<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/muuta-kuvan-kokoa-php-ssa-tinypng-n-avulla\/\" title=\"Muuta kuvan kokoa PHP: ss\u00e4 TinyPNG: n avulla\">Muuta kuvan kokoa PHP: ss\u00e4 TinyPNG: n avulla<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Luodinkest\u00e4v\u00e4 on kirjasto, jota k\u00e4ytet\u00e4\u00e4n kuvien lataamiseen PHP: hen turvallisesti. T\u00e4ss\u00e4 artikkelissa tutkitaan, kuinka t\u00e4m\u00e4 kirjasto asennetaan ja k\u00e4ytet\u00e4\u00e4n sovelluksessamme<\/p>\n","protected":false},"author":1,"featured_media":21621,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[275],"tags":[843],"class_list":["post-25863","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-6","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts\/25863","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/comments?post=25863"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts\/25863\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/media\/21621"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/media?parent=25863"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/categories?post=25863"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/tags?post=25863"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}