{"id":29607,"date":"2021-06-15T13:56:00","date_gmt":"2021-06-15T10:56:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=29607"},"modified":"2021-10-17T04:15:18","modified_gmt":"2021-10-17T01:15:18","slug":"ladda-upp-bild-med-bulletproof-library-i-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/sv\/ladda-upp-bild-med-bulletproof-library-i-php\/","title":{"rendered":"Ladda upp bild med Bulletproof Library i PHP"},"content":{"rendered":"<p>Att ladda upp en bild p\u00e5 servern \u00e4r en vanlig uppgift f\u00f6r utvecklare. Man kan ha gjort denna uppgift hundratals g\u00e5nger. Under denna uppladdningsprocess m\u00e5ste utvecklare ta hand om f\u00f6ljande saker.<\/p>\n<ul>\n<li>Kontrollera om den uppladdade filen \u00e4r en bild<\/li>\n<li>Skapa en katalog d\u00e4r bilder lagras<\/li>\n<li>Skapa ett unikt namn f\u00f6r varje bild s\u00e5 att den inte ers\u00e4tter den befintliga med samma namn.<\/li>\n<li>Valfritt kan du l\u00e4gga till validering f\u00f6r dimensionen p\u00e5 en bild. Om en uppladdad bild har en stor dimension \u00e4n angiven, kasta ett fel.<\/li>\n<\/ul>\n<p>Det h\u00e4r \u00e4r de rekommenderade kontroller som en utvecklare b\u00f6r f\u00f6lja n\u00e4r han skriver kod. Man kan skriva villkor f\u00f6r alla dessa steg i koden. Men det tar lite arbete och koden blir l\u00e5ng.<\/p>\n<p>Jag kommer att rekommendera att anv\u00e4nda <a href=\"https:\/\/github.com\/samayo\/bulletproof\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Bulletproof-<\/a> biblioteket som hanterar alla dessa steg \u00e5t dig under huven. Det sparar dig tid att l\u00e4gga till logik f\u00f6r varje steg och minska antalet rader fr\u00e5n din kod.<\/p>\n<p>Bulletproof \u00e4r en PHP-s\u00e4ker bilduppladdare med ett trevligt API. Vi har provat det h\u00e4r biblioteket f\u00f6r v\u00e5rt projekt och vi \u00e4r ganska n\u00f6jda med slutresultatet. D\u00e4rf\u00f6r best\u00e4mde jag mig f\u00f6r att dela ett ord om detta bibliotek med v\u00e5ra l\u00e4sare.<\/p>\n<p>Bulletproof-biblioteket har f\u00f6ljande funktioner i sin k\u00e4rna som g\u00f6r det s\u00e4krare.<\/p>\n<ul>\n<li>Anv\u00e4nder exif_imagetype() f\u00f6r att f\u00e5 den sanna bilden mime (.extension)<\/li>\n<li>Anv\u00e4nder getimagesize () f\u00f6r att kontrollera om bilden har en giltig h\u00f6jd \/ bredd i pixlar.<\/li>\n<li>Sanitiserade bildnamn, strikta mappbeh\u00f6righeter och mer &#8230;<\/li>\n<\/ul>\n<p>Med det sagt, l\u00e5t oss ta en titt p\u00e5 hur man laddar upp bilder i PHP med hj\u00e4lp av Bulletproof-biblioteket.<\/p>\n<h3>Komma ig\u00e5ng<\/h3>\n<p>F\u00f6r att komma ig\u00e5ng med Bulletproof-biblioteket, installera det med kommandot Composer nedan. Se till att du har <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composer<\/a> installerat p\u00e5 systemet.<\/p>\n<pre><code>composer require samayo\/bulletproof:4.0.*<\/code><\/pre>\n<p>Skapa sedan ett enkelt HTML-formul\u00e4r med filinmatning och skicka-knappen.<\/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>Ladda upp bild med Bulletproof Library<\/h3>\n<p>Vi har ett bibliotek och HTML-formul\u00e4r. L\u00e5t oss nu l\u00e4gga till en kod fr\u00e5n biblioteket som laddar upp en bild p\u00e5 servern.<\/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>Du \u00e4r f\u00e4rdig. Forts\u00e4tt och testa det. Du kommer att se dina bilder lagrade i mappen &quot;uppladdningar&quot; med ett unikt namn. Anv\u00e4ndaren kan \u00e4ndra denna plats med n\u00e5got annat.<\/p>\n<p>Om du f\u00f6rs\u00f6ker ladda upp andra filer \u00e4n bilder f\u00e5r du ett fel. Om du vill st\u00e4lla in dimension, l\u00e4gg till nedanst\u00e5ende uttalande i ovanst\u00e5ende kod.<\/p>\n<pre><code>$file-&gt;setDimension(600, 400);<\/code><\/pre>\n<p>H\u00e4r \u00e4r &#8217;600&#8217; bildbredd och &#8217;400&#8217; \u00e4r h\u00f6jden p\u00e5 en bild. Justera v\u00e4rden enligt dina krav.<\/p>\n<h3>Ladda upp flera bilder med hj\u00e4lp av Bulletproof Library<\/h3>\n<p>Du kanske vill ladda upp flera bilder p\u00e5 en server med detta bibliotek. Det kr\u00e4ver en liten f\u00f6r\u00e4ndring av ovanst\u00e5ende kod. Du m\u00e5ste l\u00e4gga till ett attribut &#8217;flera&#8217; till filinmatningen. Anv\u00e4nd ocks\u00e5 arrayformatet f\u00f6r namnet p\u00e5 filinmatningen. Efter detta kommer vi att slinga igenom varje bild och ladda upp den till servern enligt f\u00f6ljande.<\/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>Det \u00e4r allt! Jag hoppas att du f\u00f6rst\u00e5r hur du laddar upp en bild via Bulletproof-biblioteket. Dela 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\/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<li><a href=\"https:\/\/themewp.inform.click\/sv\/hur-man-optimerar-bilden-vid-uppladdning-i-php\/\" title=\"Hur man optimerar bilden vid uppladdning i PHP\">Hur man optimerar bilden vid uppladdning i PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/sv\/andra-storlek-pa-bild-i-php-med-tinypng\/\" title=\"\u00c4ndra storlek p\u00e5 bild i PHP med TinyPNG\">\u00c4ndra storlek p\u00e5 bild i PHP med TinyPNG<\/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>Bulletproof \u00e4r ett bibliotek som anv\u00e4nds f\u00f6r att ladda upp bilder i PHP med s\u00e4kerhet. I den h\u00e4r artikeln studerar vi hur man installerar och anv\u00e4nder detta bibliotek i v\u00e5r app<\/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":[279],"tags":[850],"class_list":["post-29607","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\/29607","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=29607"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/posts\/29607\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/media\/21621"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/media?parent=29607"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/categories?post=29607"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/tags?post=29607"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}