{"id":25635,"date":"2021-06-01T19:34:00","date_gmt":"2021-06-01T16:34:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=25635"},"modified":"2021-10-17T18:32:39","modified_gmt":"2021-10-17T15:32:39","slug":"kuidas-optimeerida-pilti-uleslaadimisel-php-s","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/et\/kuidas-optimeerida-pilti-uleslaadimisel-php-s\/","title":{"rendered":"Kuidas optimeerida pilti \u00fcleslaadimisel PHP-s"},"content":{"rendered":"<p>Hiljuti k\u00fcsis \u00fcks lugejatest, kuidas optimeerida pilte PHP-s \u00fcleslaadimisel. K\u00fcsimusele vastamiseks otsustasin kirjutada artikli, mis n\u00e4itab, kuidas saame faili suurust selle \u00fcleslaadimise ajal v\u00e4hendada v\u00f5i tihendada.<\/p>\n<p>Arendajana on failide \u00fcleslaadimine meie tavap\u00e4rane \u00fclesanne. Teeme seda alati traditsioonilisel viisil. Sisseehitatud funktsiooni abil <code>move_uploaded_file<\/code>liigutame pildid kataloogi ja j\u00e4tame need sellistena, nagu need on. Kas m\u00f5tleme m\u00f5ne punkti peale, n\u00e4iteks milline on \u00fcleslaaditud pildi suurus? Kas selle pildi laadimine veebisaidile v\u00f5tab aega? Kas ma saan pilti optimeerida, kaotamata selle kvaliteeti?<\/p>\n<p>Kujutistel on saidi kiiruses oluline roll. Rasked pildid aeglustavad lehe kiirust, mis kaotab teie vaatajaskonna ja liikluse. See olukord pole taskukohane. Publiku ja liikluse loomiseks n\u00e4eme palju vaeva. Nii et hea tavana peaksite \u00fcleslaadimise ajal pilti optimeerima.<\/p>\n<p>Selles artiklis kasutan <a href=\"https:\/\/tinypng.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">piltide<\/a> optimeerimiseks teenust <a href=\"https:\/\/tinypng.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">TinyPNG<\/a>. Kirjutame selle jaoks m\u00f5ne hetkega koodi. Vahepeal on ekraanipilt tinypng.com-ilt originaalse ja optimeeritud pildi erinevuse visualiseerimiseks.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20382-6081e8cbba932.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20382-6081e8cbba932.png\" alt=\"Kuidas optimeerida pilti \u00fcleslaadimisel PHP-s\" ><\/a><\/p>\n<h3>Kasutage TinyPNG-d pildi \u00fcleslaadimisel optimeerimiseks<\/h3>\n<p>Alustamiseks peate installima TinyPNG teegi. Installige teek, kasutades allolevat k\u00e4sku.<\/p>\n<pre><code>composer require tinify\/tinify<\/code><\/pre>\n<p>P\u00e4rast teegi installimist hankige oma API-v\u00f5ti <a href=\"https:\/\/tinypng.com\/developers\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">TinyPNG<\/a> veebisaidilt.<\/p>\n<p><strong>M\u00e4rkus<\/strong>: TinyPNG v\u00f5imaldab pakkida kuus tasuta 500 pilti. Rohkem kui 500 pildi eest peate need maksma. Kui teil on v\u00e4ike veebisait, piisab sellest kvoodist.<\/p>\n<p>Kui olete API v\u00f5tmega valmis, alustame koodiga. Koostan lihtsa HTML-vormi, mis sisaldab failisisestust ja nuppu Esita.<\/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=\"myfile\" accept=\"image\/*\" required \/&gt;&lt;\/p&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;button type=\"submit\" name=\"submit\"&gt;Submit&lt;\/button&gt;\n&lt;\/form&gt;<\/code><\/pre>\n<p>Kui kasutajad selle vormi abil pilti \u00fcles laadivad, kirjutavad arendajad allalaaditud pildi serverisse teisaldamiseks j\u00e4rgmise koodi.<\/p>\n<pre><code>if (isset($_POST['submit'])) {\n\u00a0\n\u00a0\u00a0\u00a0\u00a0$allowed_mime_types = array('image\/gif', 'image\/jpg', 'image\/jpeg', 'image\/png');\n\u00a0\n\u00a0\u00a0\u00a0\u00a0if (!in_array($_FILES['myfile']['type'], $allowed_mime_types)) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo 'Invalid file format.';\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0exit();\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0if (!file_exists(getcwd().'\/uploads')) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mkdir(getcwd().'\/uploads', 0777);\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0$src_file_name = $_FILES['myfile']['name'];\n\u00a0\u00a0\u00a0\u00a0move_uploaded_file($_FILES['myfile']['tmp_name'], getcwd().'\/uploads\/'.$src_file_name);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0echo \"File uploaded successfully\";\n}<\/code><\/pre>\n<p>\u00dclaltoodud kood on \u00f5ige ja selles pole probleemi, v\u00e4lja arvatud pildi optimeerimise puuduv osa. Piltide optimeerimiseks peate p\u00e4rast <code>move_uploaded_file<\/code>lauset lihtsalt lisama 2 koodirida .<\/p>\n<pre><code>\/\/optimize image using TinyPNG\n$source = TinifyfromFile(getcwd().'\/uploads\/'.$src_file_name);\n$source-&gt;toFile(getcwd().'\/uploads\/'.$src_file_name);<\/code><\/pre>\n<p>\u00dclaltoodud 2 rida v\u00f5tavad pildi l\u00e4hte teelt, optimeerivad selle koos TinyPNG teegiga kvaliteeti kaotamata ja salvestavad selle tagasi samale l\u00e4hte teele. Teisis\u00f5nu asendab see algse pildi optimeeritud versiooniga.<\/p>\n<p>Meie l\u00f5plik kood on j\u00e4rgmine.<\/p>\n<pre><code>&lt;?php\nrequire_once(\"vendor\/autoload.php\");\n\u00a0\nTinifysetKey(\"TINYPNG_API_KEY\"); \/\/pass your actual API key\n\u00a0\nif (isset($_POST['submit'])) {\n\u00a0\n\u00a0\u00a0\u00a0\u00a0$allowed_mime_types = array('image\/gif', 'image\/jpg', 'image\/jpeg', 'image\/png');\n\u00a0\n\u00a0\u00a0\u00a0\u00a0if (!in_array($_FILES['myfile']['type'], $allowed_mime_types)) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo 'Invalid file format.';\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0exit();\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0if (!file_exists(getcwd().'\/uploads')) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mkdir(getcwd().'\/uploads', 0777);\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0$src_file_name = $_FILES['myfile']['name'];\n\u00a0\u00a0\u00a0\u00a0move_uploaded_file($_FILES['myfile']['tmp_name'], getcwd().'\/uploads\/'.$src_file_name);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\/\/optimize image using TinyPNG\n\u00a0\u00a0\u00a0\u00a0$source = TinifyfromFile(getcwd().'\/uploads\/'.$src_file_name);\n\u00a0\u00a0\u00a0\u00a0$source-&gt;toFile(getcwd().'\/uploads\/'.$src_file_name);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0echo \"File uploaded successfully.\";\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=\"myfile\" accept=\"image\/*\" required \/&gt;&lt;\/p&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;button type=\"submit\" name=\"submit\"&gt;Submit&lt;\/button&gt;\n&lt;\/form&gt;<\/code><\/pre>\n<p>Edasi ja proovige seda. Peaksite n\u00e4gema, et pildi optimeeritud versioon salvestatakse teie kataloogi.<\/p>\n<p>Loodetavasti saate aru, kuidas pilti optimeerida PHP-s \u00fcleslaadimisel. Tahaksin kuulda teie 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\/tinypng-piltide-tihendamine-php-abil\/\" title=\"TinyPNG piltide tihendamine PHP abil\">TinyPNG piltide tihendamine PHP abil<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/et\/mitme-pildi-uleslaadimine-ja-tihendamine-php-s\/\" title=\"Mitme pildi \u00fcleslaadimine ja tihendamine PHP-s\">Mitme pildi \u00fcleslaadimine ja tihendamine PHP-s<\/a><\/li>\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<\/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>Selles artiklis n\u00e4itan teile, kuidas optimeerida pilti \u00fcleslaadimisel PHP-s, kasutades TinyPNG teeki. Piltidel on veebisaidil v\u00e4ga oluline roll.<\/p>\n","protected":false},"author":1,"featured_media":21612,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[274],"tags":[842],"class_list":["post-25635","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\/25635","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=25635"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/posts\/25635\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/media\/21612"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/media?parent=25635"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/categories?post=25635"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/tags?post=25635"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}