{"id":28999,"date":"2021-06-01T20:04:00","date_gmt":"2021-06-01T17:04:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=28999"},"modified":"2021-10-17T04:29:02","modified_gmt":"2021-10-17T01:29:02","slug":"hur-man-optimerar-bilden-vid-uppladdning-i-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/sv\/hur-man-optimerar-bilden-vid-uppladdning-i-php\/","title":{"rendered":"Hur man optimerar bilden vid uppladdning i PHP"},"content":{"rendered":"<p>Nyligen fr\u00e5gade en av l\u00e4sarna mig hur man optimerar bilder vid uppladdning i PHP. F\u00f6r att svara p\u00e5 fr\u00e5gan best\u00e4mde jag mig f\u00f6r att skriva en artikel som visar hur vi kan minska eller komprimera filstorleken n\u00e4r vi laddar upp den.<\/p>\n<p>Som utvecklarfil \u00e4r uppladdning v\u00e5r vanliga uppgift. Vi g\u00f6r det alltid p\u00e5 ett traditionellt s\u00e4tt. Med hj\u00e4lp av den inbyggda funktionen <code>move_uploaded_file<\/code>flyttar vi bilderna till katalogen och l\u00e4mnar dem som de \u00e4r. T\u00e4nker vi p\u00e5 n\u00e5gra punkter som storleken p\u00e5 den uppladdade bilden? Kommer det ta tid att ladda den h\u00e4r bilden p\u00e5 en webbplats? Kan jag optimera en bild utan att f\u00f6rlora kvaliteten?<\/p>\n<p>Bilder spelar en viktig roll i webbplatsens hastighet. Tunga bilder saktar ner sidhastigheten vilket i sin tur f\u00f6rlorar din publik och trafik. Denna situation \u00e4r inte \u00f6verkomlig. Vi anstr\u00e4nger oss mycket f\u00f6r att bygga publik och trafik. S\u00e5 som en bra praxis b\u00f6r du optimera bilden medan du laddar upp den.<\/p>\n<p>I den h\u00e4r artikeln ska jag anv\u00e4nda <a href=\"https:\/\/tinypng.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">TinyPNG-<\/a> tj\u00e4nsten f\u00f6r att optimera bilderna. Vi kommer att skriva en kod f\u00f6r det p\u00e5 ett \u00f6gonblick. Under tiden \u00e4r sk\u00e4rmdumpen fr\u00e5n tinypng.com f\u00f6r att visualisera skillnaden mellan original och optimerad bild.<\/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=\"Hur man optimerar bilden vid uppladdning i PHP\" ><\/a><\/p>\n<h3>Anv\u00e4nd TinyPNG f\u00f6r att optimera bilden vid uppladdning<\/h3>\n<p>F\u00f6r att komma ig\u00e5ng m\u00e5ste du installera TinyPNG-biblioteket. Installera biblioteket med kommandot nedan.<\/p>\n<pre><code>composer require tinify\/tinify<\/code><\/pre>\n<p>N\u00e4r du har installerat biblioteket h\u00e4mtar du din API-nyckel fr\u00e5n <a href=\"https:\/\/tinypng.com\/developers\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">TinyPNG-<\/a> webbplatsen.<\/p>\n<p><strong>Obs!<\/strong> TinyPNG till\u00e5ter komprimering av 500 bilder gratis per m\u00e5nad. F\u00f6r mer \u00e4n 500 bilder m\u00e5ste du betala dem. Om du driver en liten webbplats \u00e4r denna kvot tillr\u00e4cklig.<\/p>\n<p>N\u00e4r du \u00e4r redo med API-nyckeln, l\u00e5t oss b\u00f6rja med kod. Jag skapar ett enkelt HTML-formul\u00e4r som inneh\u00e5ller filinmatning och en skicka-knapp.<\/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>N\u00e4r anv\u00e4ndarna laddar upp en bild med det h\u00e4r formul\u00e4ret skriver utvecklarna nedan kod f\u00f6r att flytta den uppladdade bilden p\u00e5 servern.<\/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>Ovanst\u00e5ende kod \u00e4r korrekt och det finns inget problem i den f\u00f6rutom den saknade delen av optimeringen av bilden. F\u00f6r att optimera bilder beh\u00f6ver du bara l\u00e4gga till tv\u00e5 rader kod efter <code>move_uploaded_file<\/code>uttalandet.<\/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>Ovanst\u00e5ende 2 rader tar en bild fr\u00e5n k\u00e4llv\u00e4gen, optimerar den med TinyPNG-biblioteket utan att tappa kvalitet och sparar den tillbaka till samma k\u00e4llv\u00e4g. Med andra ord ers\u00e4tter den originalbilden med den optimerade versionen.<\/p>\n<p>V\u00e5r slutliga kod \u00e4r som f\u00f6ljer.<\/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>Forts\u00e4tt och prova det. Du b\u00f6r se den optimerade versionen av bilden lagras i din katalog.<\/p>\n<p>Jag hoppas att du f\u00f6rst\u00e5r hur du optimerar bilden vid uppladdning i PHP. Jag skulle vilja h\u00f6ra dina tankar och f\u00f6rslag i kommentarsektionen nedan.<\/p>\n<h4>relaterade artiklar<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/sv\/tinypng-komprimera-bilder-med-php\/\" title=\"TinyPNG Komprimera bilder med PHP\">TinyPNG Komprimera bilder med PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/sv\/ladda-upp-och-komprimera-flera-bilder-i-php\/\" title=\"Ladda upp och komprimera flera bilder i PHP\">Ladda upp och komprimera flera bilder i PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/sv\/hur-man-laddar-upp-och-komprimerar-bilder-i-laravel\/\" title=\"En guide f\u00f6r att ladda upp och komprimera bilder i Laravel\">En guide f\u00f6r att ladda upp och komprimera bilder i Laravel<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Inspelningsk\u00e4lla:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I den h\u00e4r artikeln visar jag dig hur du optimerar bilden vid uppladdning i PHP med hj\u00e4lp av TinyPNG-biblioteket. Bilder spelar en mycket viktig roll p\u00e5 webbplatsen.<\/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":[279],"tags":[850],"class_list":["post-28999","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-10","tag-affiai-sv"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/posts\/28999","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/comments?post=28999"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/posts\/28999\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/media\/21612"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/media?parent=28999"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/categories?post=28999"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/tags?post=28999"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}