{"id":26290,"date":"2021-06-15T14:06:00","date_gmt":"2021-06-15T11:06:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=26290"},"modified":"2021-10-17T18:17:08","modified_gmt":"2021-10-17T15:17:08","slug":"laadige-pilt-ules-php-s-kuulikindla-teegi-abil","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/et\/laadige-pilt-ules-php-s-kuulikindla-teegi-abil\/","title":{"rendered":"Laadige pilt \u00fcles PHP-s kuulikindla teegi abil"},"content":{"rendered":"<p>Kujutise serverisse \u00fcleslaadimine on arendajatele tavaline \u00fclesanne. V\u00f5ib-olla on see \u00fclesanne tehtud sadu kordi. Selle \u00fcleslaadimise k\u00e4igus peavad arendajad hoolitsema j\u00e4rgmiste asjade eest.<\/p>\n<ul>\n<li>Kontrollige, kas \u00fcleslaaditud fail on pilt<\/li>\n<li>Looge kataloog, kuhu pilte salvestatakse<\/li>\n<li>Looge igale pildile kordumatu nimi, nii et see ei asenda olemasolevat sama nimega.<\/li>\n<li>Lisage valikuliselt ka pildi dimensiooni valideerimine. Kui \u00fcleslaaditud pildil on m\u00e4\u00e4ratust suurem m\u00f5\u00f5de, visake viga.<\/li>\n<\/ul>\n<p>Need on soovitatavad kontrollid, mida arendaja peaks koodi kirjutamise ajal j\u00e4rgima. K\u00f5igi nende sammude kohta saab koodi kirjutada tingimused. Kuid see v\u00f5tab natuke t\u00f6\u00f6d ja kood muutub pikaks.<\/p>\n<p>Soovitan kasutada <a href=\"https:\/\/github.com\/samayo\/bulletproof\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">kuulikindlat<\/a> teeki, mis tegeleb k\u00f5igi nende toimingutega teie kapoti all. See s\u00e4\u00e4stab teie aega iga sammu loogika lisamiseks ja koodist ridade arvu v\u00e4hendamiseks.<\/p>\n<p>Bulletproof on PHP turvaline piltide \u00fcleslaadija, kena API-ga. Oleme seda raamatukogu oma projektis proovinud ja oleme l\u00f5pptulemusega \u00fcsna rahul. Sellep\u00e4rast otsustasin selle raamatukogu kohta meie lugejatega jagada.<\/p>\n<p>Kuulikindla teegi tuumal on j\u00e4rgmised funktsioonid, mis muudavad selle turvalisemaks.<\/p>\n<ul>\n<li>T\u00f5elise pildi miimika (.extension) saamiseks kasutab exif_imagetype()<\/li>\n<li>Kasutab pilti getimagesize (), et kontrollida, kas pildil on kehtiv k\u00f5rgus \/ laius pikslites.<\/li>\n<li>Puhastatud piltide nimed, ranged kausta\u00f5igused ja palju muud &#8230;<\/li>\n<\/ul>\n<p>Sellest hoolimata vaatame, kuidas Bulletproofi teeki abil pilte PHP-sse \u00fcles laadida.<\/p>\n<h3>Alustamine<\/h3>\n<p>Bulletproof-teegiga alustamiseks installige see allpool oleva Composeri k\u00e4su abil. Veenduge, et <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composer<\/a> oleks s\u00fcsteemi installitud.<\/p>\n<pre><code>composer require samayo\/bulletproof:4.0.*<\/code><\/pre>\n<p>J\u00e4rgmisena looge faili sisestamise ja esitamise nupuga lihtne HTML-vorm.<\/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>Laadige pilt \u00fcles bulletproof Library abil<\/h3>\n<p>Oleme seadistatud teegi ja HTML-vormiga. Lisame n\u00fc\u00fcd teegi pakutava koodi, mis laadib serverisse pildi \u00fcles.<\/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>Sa oled valmis. J\u00e4tkake ja proovige seda. N\u00e4ete oma pilte, mis on unikaalse nimega kausta &#8216;uploads&#8217; salvestatud. Kasutaja saab seda asukohta millegi muuga muuta.<\/p>\n<p>Kui proovite \u00fcles laadida muid faile kui pildid, kuvatakse t\u00f5rge. Igaks juhuks, kui soovite ka dimensiooni seada, lisage \u00fclaltoodud koodile j\u00e4rgmine lause.<\/p>\n<pre><code>$file-&gt;setDimension(600, 400);<\/code><\/pre>\n<p>Siin on &#8216;600&#8217; pildi laius ja &#8216;400&#8217; kujutise k\u00f5rgus. Kohandage v\u00e4\u00e4rtusi vastavalt oma vajadustele.<\/p>\n<h3>Laadige \u00fcles mitu pilti t\u00e4ppjaama abil<\/h3>\n<p>Selle teegi abil v\u00f5ite \u00fcles laadida mitu pilti serverisse. See n\u00f5uab \u00fclaltoodud koodi veidi muutmist. Peate lisama failisisendile atribuudi &#8216;multiple&#8217;. Samuti kasutage failisisendi nime massiivivormingut. P\u00e4rast seda vaatame iga pildi l\u00e4bi ja laadime selle serverisse \u00fcles j\u00e4rgmiselt.<\/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>See selleks! Loodan, et saate aru, kuidas pilti Bulletproofi teegi kaudu \u00fcles laadida. Palun jagage oma m\u00f5tteid ja ettepanekuid allpool olevas kommentaaride jaotises.<\/p>\n<h4>seotud artiklid<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/et\/kuidas-pilte-laravelis-ules-laadida-ja-tihendada\/\" title=\"Juhend piltide \u00fcleslaadimiseks ja tihendamiseks Laravelis\">Juhend piltide \u00fcleslaadimiseks ja tihendamiseks Laravelis<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/et\/kuidas-optimeerida-pilti-uleslaadimisel-php-s\/\" title=\"Kuidas optimeerida pilti \u00fcleslaadimisel PHP-s\">Kuidas optimeerida pilti \u00fcleslaadimisel PHP-s<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/et\/php-s-saate-pildi-suurust-muuta-kasutades-tinypng-d\/\" title=\"Suurendage pildi suurust PHP-s, kasutades TinyPNG-d\">Suurendage pildi suurust PHP-s, kasutades TinyPNG-d<\/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>Bulletproof on teek, mida kasutatakse turvalisuse tagamiseks piltide PHP-sse \u00fcles laadimiseks. Selles artiklis uurime, kuidas seda teeki oma rakenduses installida ja kasutada<\/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":[274],"tags":[842],"class_list":["post-26290","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-5","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/posts\/26290","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/comments?post=26290"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/posts\/26290\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/media\/21621"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/media?parent=26290"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/categories?post=26290"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/tags?post=26290"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}