{"id":26231,"date":"2021-06-15T14:06:00","date_gmt":"2021-06-15T11:06:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=26231"},"modified":"2021-10-18T03:00:31","modified_gmt":"2021-10-18T00:00:31","slug":"carica-l-immagine-utilizzando-la-libreria-antiproiettile-in-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/it\/carica-l-immagine-utilizzando-la-libreria-antiproiettile-in-php\/","title":{"rendered":"Carica l&#8217;immagine utilizzando la libreria antiproiettile in PHP"},"content":{"rendered":"<p>Il caricamento di un&#8217;immagine sul server \u00e8 un&#8217;attivit\u00e0 comune per gli sviluppatori. Si pu\u00f2 aver fatto questo compito centinaia di volte. Durante questo processo di caricamento, gli sviluppatori devono occuparsi delle seguenti cose.<\/p>\n<ul>\n<li>Controlla se il file caricato \u00e8 un&#8217;immagine<\/li>\n<li>Crea una directory in cui verranno archiviate le immagini<\/li>\n<li>Genera un nome univoco per ogni immagine in modo che non sostituisca quella esistente con lo stesso nome.<\/li>\n<li>Facoltativamente, aggiungi la convalida per la dimensione di un&#8217;immagine. Se un&#8217;immagine caricata ha una dimensione maggiore di quella specificata, genera un errore.<\/li>\n<\/ul>\n<p>Questi sono i controlli consigliati che uno sviluppatore dovrebbe seguire durante la scrittura del codice. Si possono scrivere le condizioni per tutti questi passaggi nel codice. Ma ci vorr\u00e0 un po&#8217; di lavoro e il codice diventer\u00e0 lungo.<\/p>\n<p>Consiglier\u00f2 di utilizzare la libreria <a href=\"https:\/\/github.com\/samayo\/bulletproof\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Bulletproof<\/a> che gestisce tutti questi passaggi per te sotto il cofano. Ti fa risparmiare il tempo di aggiungere la logica per ogni passaggio e ridurre il numero di righe dal tuo codice.<\/p>\n<p>Bulletproof \u00e8 un uploader di immagini sicuro PHP, con una bella API. Abbiamo provato questa libreria per il nostro progetto e siamo abbastanza soddisfatti del risultato finale. Ecco perch\u00e9 ho deciso di condividere una parola su questa libreria con i nostri lettori.<\/p>\n<p>La libreria Bulletproof ha le seguenti funzionalit\u00e0 nel suo nucleo che la rendono pi\u00f9 sicura.<\/p>\n<ul>\n<li>Usa exif_imagetype() per ottenere il vero mime dell&#8217;immagine (.extension)<\/li>\n<li>Utilizza getimagesize() per verificare se l&#8217;immagine ha un&#8217;altezza\/larghezza valida in pixel.<\/li>\n<li>Nomi delle immagini sanificate, autorizzazioni rigide per le cartelle e altro ancora&#8230;<\/li>\n<\/ul>\n<p>Detto questo, diamo un&#8217;occhiata a come caricare immagini in PHP utilizzando la libreria Bulletproof.<\/p>\n<h3>Iniziare<\/h3>\n<p>Per iniziare con la libreria Bulletproof, installala utilizzando il comando Composer di seguito. Assicurati di avere <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composer<\/a> installato sul sistema.<\/p>\n<pre><code>composer require samayo\/bulletproof:4.0.*<\/code><\/pre>\n<p>Quindi, crea un semplice modulo HTML con l&#8217;input del file e il pulsante di invio.<\/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>Carica immagine utilizzando la libreria antiproiettile<\/h3>\n<p>Siamo impostati con una libreria e un modulo HTML. Ora aggiungiamo un codice fornito dalla libreria che carica un&#8217;immagine sul server.<\/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>Hai fatto. Vai avanti e provalo. Vedrai le tue immagini memorizzate all&#8217;interno della cartella &#8216;uploads&#8217; con un nome univoco. L&#8217;utente pu\u00f2 modificare questa posizione con qualcos&#8217;altro.<\/p>\n<p>Se provi a caricare file diversi dalle immagini, riceverai un errore. Per ogni evenienza, se si desidera impostare anche la dimensione, aggiungere l&#8217;istruzione seguente nel codice precedente.<\/p>\n<pre><code>$file-&gt;setDimension(600, 400);<\/code><\/pre>\n<p>Qui &#8216;600&#8217; \u00e8 la larghezza dell&#8217;immagine e &#8216;400&#8217; \u00e8 l&#8217;altezza di un&#8217;immagine. Regola i valori in base alle tue esigenze.<\/p>\n<h3>Carica pi\u00f9 immagini utilizzando la libreria antiproiettile<\/h3>\n<p>Potresti voler caricare pi\u00f9 immagini su un server usando questa libreria. Richiede un piccolo cambiamento nel codice di cui sopra. Devi aggiungere un attributo &#8216;multiplo&#8217; all&#8217;input del file. Inoltre, usa il formato dell&#8217;array per il nome dell&#8217;input del file. Successivamente, eseguiremo il ciclo di ogni immagine e la caricheremo sul server come segue.<\/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>Questo \u00e8 tutto! Spero che tu capisca come caricare un&#8217;immagine attraverso la libreria Bulletproof. Per favore condividi i tuoi pensieri e suggerimenti nella sezione commenti qui sotto.<\/p>\n<h4>articoli Correlati<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/it\/come-caricare-e-comprimere-immagini-in-laravel\/\" title=\"Una guida per caricare e comprimere immagini in Laravel\">Una guida per caricare e comprimere immagini in Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/it\/come-ottimizzare-l-immagine-al-caricamento-in-php\/\" title=\"Come ottimizzare l&#039;immagine al caricamento in PHP\">Come ottimizzare l&#8217;immagine al caricamento in PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/it\/ridimensiona-l-immagine-in-php-usando-tinypng\/\" title=\"Ridimensiona l&#039;immagine in PHP usando TinyPNG\">Ridimensiona l&#8217;immagine in PHP usando TinyPNG<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte di registrazione:  <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 \u00e8 una libreria utilizzata per caricare immagini in PHP con sicurezza. In questo articolo, studiamo come installare e utilizzare questa libreria nella nostra 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":[276],"tags":[846],"class_list":["post-26231","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-7","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts\/26231","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/comments?post=26231"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts\/26231\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/media\/21621"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/media?parent=26231"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/categories?post=26231"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/tags?post=26231"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}