{"id":23782,"date":"2021-05-05T15:38:00","date_gmt":"2021-05-05T12:38:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=23782"},"modified":"2021-10-18T03:18:20","modified_gmt":"2021-10-18T00:18:20","slug":"come-caricare-immagini-su-un-altro-server-tramite-ftp-in-laravel","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/it\/come-caricare-immagini-su-un-altro-server-tramite-ftp-in-laravel\/","title":{"rendered":"Come caricare immagini su un altro server tramite FTP in Laravel"},"content":{"rendered":"<p>Vuoi caricare i tuoi file dalla tua applicazione Laravel su un altro server tramite FTP? Laravel viene fornito con il supporto integrato per il caricamento di file su server o cloud esterni. In questa guida, ti mostriamo come caricare file (immagini) su un altro server tramite FTP nel sito Web di Laravel.<\/p>\n<p>Ospitare immagini su un altro server pu\u00f2 aiutare a migliorare la velocit\u00e0 del tuo sito. Questa tecnica \u00e8 una sorta di connessione parallela tra un browser Web e i server. Riduce il carico da un server poich\u00e9 per il browser delle immagini verr\u00e0 chiamato un altro server.<\/p>\n<p><a href=\"https:\/\/laravel.com\/docs\/5.6\/filesystem\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Laravel Filesystem<\/a> fornisce un modo conveniente per gestire i nostri file sul cloud o su un server esterno. L&#8217;utente pu\u00f2 scegliere diversi provider di archiviazione Laravel come S3, Rackspace, FTP o SFTP. Diamo un&#8217;occhiata al caricamento di file Laravel utilizzando il driver FTP.<\/p>\n<h3>Carica file su un altro server tramite driver FTP<\/h3>\n<p>Per iniziare, dovresti conoscere i dettagli del tuo host FTP, nome utente FTP e password FTP. Una volta che sei pronto con i dettagli, apri i <code>.env<\/code>file e aggiungi i dettagli come di seguito:<\/p>\n<pre><code>FTP_HOST=YOUR_FTP_HOST_VALUE\nFTP_USERNAME=YOUR_FTP_USERNAME_VALUE\nFTP_PASSWORD=YOUR_FTP_PASSWORD_VALUE<\/code><\/pre>\n<p>Assicurati di sostituire i segnaposto con i valori effettivi. Quindi, apri il <code>config\/filesystems.php<\/code>file e aggiungi la configurazione &#8216;ftp&#8217; all&#8217;array &#8216;disks&#8217;.<\/p>\n<p><strong>config\/filesystems.php<\/strong><\/p>\n<pre><code>&lt;?php\nreturn [\n\u00a0\u00a0\u00a0\u00a0......\n\u00a0\u00a0\u00a0\u00a0'disks' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0......\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'ftp' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'driver' =&gt; 'ftp',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'host' =&gt; env('FTP_HOST'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'username' =&gt; env('FTP_USERNAME'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'password' =&gt; env('FTP_PASSWORD'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'root' =&gt; 'DIR_PATH_TO_WHERE_IMAGE_STORE' \/\/ for example: \/var\/www\/html\/dev\/images\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0],\n\u00a0\u00a0\u00a0\u00a0],\n\u00a0\u00a0\u00a0\u00a0\u00a0\n];<\/code><\/pre>\n<p>Sostituisci DIR_PATH_TO_WHERE_IMAGE_STORE con il percorso effettivo in cui devi memorizzare le immagini. Ad esempio, se abbiamo una cartella chiamata &quot;images&quot; e il percorso di questa cartella \u00e8 \/var\/www\/html\/dev\/images, questo percorso andr\u00e0 come valore per &quot;root&quot; nell&#8217;array sopra.<\/p>\n<p>Per caricare i file tramite FTP abbiamo bisogno di un modulo in cui un utente pu\u00f2 inviare l&#8217;immagine. Aggiungi il codice seguente nel file di visualizzazione.<\/p>\n<pre><code>&lt;form action=\"{{ url('PASS_ACTION_URL_HERE') }}\" method=\"post\" enctype=\"multipart\/form-data\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;div class=\"form-group\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;label for=\"exampleInputFile\"&gt;File input&lt;\/label&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input type=\"file\" name=\"profile_image\" id=\"exampleInputFile\" multiple \/&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0{{ csrf_field() }}\n\u00a0\u00a0\u00a0\u00a0&lt;button type=\"submit\" class=\"btn btn-default\"&gt;Submit&lt;\/button&gt;\n&lt;\/form&gt;<\/code><\/pre>\n<p>Dovresti sostituire PASS_ACTION_URL_HERE con il tuo percorso effettivo. Poich\u00e9 stiamo utilizzando un Laravel Storage per il caricamento dei file, l&#8217;utente deve aggiungere Facade al file del controller come segue:<\/p>\n<pre><code>use IlluminateSupportFacadesStorage;<\/code><\/pre>\n<p>Infine, il codice funzione del controller sarebbe il seguente:<\/p>\n<pre><code>public function store(Request $request)\n{\n\u00a0\u00a0\u00a0\u00a0if($request-&gt;hasFile('profile_image')) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/get filename with extension\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$filenamewithextension = $request-&gt;file('profile_image')-&gt;getClientOriginalName();\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/get filename without extension\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$filename = pathinfo($filenamewithextension, PATHINFO_FILENAME);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/get file extension\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$extension = $request-&gt;file('profile_image')-&gt;getClientOriginalExtension();\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/filename to store\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$filenametostore = $filename.'_'.uniqid().'.'.$extension;\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/Upload File to external server\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Storage::disk('ftp')-&gt;put($filenametostore, fopen($request-&gt;file('profile_image'), 'r+'));\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/Store $filenametostore in the database\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0return redirect('images')-&gt;with('status', \"Image uploaded successfully.\");\n}<\/code><\/pre>\n<p>&#8216;profile_image&#8217; \u00e8 il nome del nostro file di input. Costruiamo il nome univoco del nostro file e poi lo carichiamo su un server esterno. Nota che abbiamo usato il metodo Storage::disk(&#8216;ftp&#8217;). Questa funzione memorizzer\u00e0 il nostro file nel percorso definito nella configurazione. Un utente dovrebbe memorizzare il valore &#8216;$filenametostore&#8217; nel tuo database.<\/p>\n<h3>Recupera o elimina immagine<\/h3>\n<p>Abbiamo a che fare con le immagini, quindi, ovviamente, dobbiamo visualizzare queste immagini sul sito web. Poich\u00e9 stiamo memorizzando queste immagini sul server esterno noto, un utente dovrebbe conoscere il percorso HTTP della cartella in cui memorizziamo le immagini. Pu\u00f2 essere qualcosa come YOUR_DOMAIN_URL\/images\/. Nel metodo controller, dovremmo memorizzare il nome dell&#8217;immagine nel database. Quindi il nostro tag HTML img sar\u00e0 come segue:<\/p>\n<pre><code>&lt;img src=\"YOUR_DOMAIN_URL\/images\/FILE_NAME\" \/&gt;<\/code><\/pre>\n<p>Qui FILE_NAME \u00e8 il nome della tua immagine memorizzato nel database. L&#8217;utente pu\u00f2 eliminare il file nel modo seguente:<\/p>\n<pre><code>Storage::disk('ftp')-&gt;delete('FILE_NAME');<\/code><\/pre>\n<h4>articoli Correlati<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/it\/come-caricare-file-su-s3-utilizzando-laravel-filesystem\/\" title=\"Come caricare file su S3 utilizzando Laravel Filesystem\">Come caricare file su S3 utilizzando Laravel Filesystem<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/it\/carica-file-su-amazon-s3-utilizzando-aws-php-sdk\/\" title=\"Carica file su Amazon S3 utilizzando AWS PHP SDK\">Carica file su Amazon S3 utilizzando AWS PHP SDK<\/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>In questo articolo, studiamo come caricare l&#8217;immagine su un altro server tramite FTP in Laravel. L&#8217;hosting di immagini su un server esterno pu\u00f2 ridurre la larghezza di banda su un server e contribuire a migliorare la velocit\u00e0 del sito.<\/p>\n","protected":false},"author":1,"featured_media":21643,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[500],"tags":[846],"class_list":["post-23782","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts\/23782","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=23782"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts\/23782\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/media\/21643"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/media?parent=23782"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/categories?post=23782"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/tags?post=23782"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}