{"id":23730,"date":"2021-05-05T16:08:00","date_gmt":"2021-05-05T13:08:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=23730"},"modified":"2021-10-17T21:17:54","modified_gmt":"2021-10-17T18:17:54","slug":"kuinka-ladata-kuvia-toiselle-palvelimelle-ftp-n-kautta-laravelissa","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fi\/kuinka-ladata-kuvia-toiselle-palvelimelle-ftp-n-kautta-laravelissa\/","title":{"rendered":"Kuinka ladata kuvia toiselle palvelimelle FTP: n kautta Laravelissa"},"content":{"rendered":"<p>Haluatko ladata tiedostosi Laravel-sovelluksestasi toiselle palvelimelle FTP: n kautta? Laravelin mukana tulee sis\u00e4\u00e4nrakennettu tuki tiedostojen lataamiseen ulkoiselle palvelimelle tai pilveen. T\u00e4ss\u00e4 oppaassa n\u00e4yt\u00e4mme, kuinka tiedostoja (kuvia) l\u00e4hetet\u00e4\u00e4n toiselle palvelimelle LTP-palvelun kautta Laravel-verkkosivustolla.<\/p>\n<p>Kuvien is\u00e4nn\u00f6inti toisella palvelimella voi auttaa parantamaan sivustosi nopeutta. T\u00e4m\u00e4 tekniikka on er\u00e4\u00e4nlainen rinnakkainen yhteys verkkoselaimen ja palvelinten v\u00e4lill\u00e4. Se v\u00e4hent\u00e4\u00e4 yhden palvelimen kuormitusta, sill\u00e4 kuvaselain soittaa toiselle palvelimelle.<\/p>\n<p><a href=\"https:\/\/laravel.com\/docs\/5.6\/filesystem\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Laravel-tiedostoj\u00e4rjestelm\u00e4<\/a> tarjoaa k\u00e4tev\u00e4n tavan hallita tiedostoja pilvess\u00e4 tai ulkoisella palvelimella. K\u00e4ytt\u00e4j\u00e4 voi valita erilaisia \u200b\u200bLaravel-tallennuspalveluntarjoajia, kuten S3, Rackspace, FTP tai SFTP. Katsotaanpa Laravel-tiedostojen lataamista FTP-ohjaimella.<\/p>\n<h3>L\u00e4het\u00e4 tiedostoja toiselle palvelimelle FTP-ohjaimen kautta<\/h3>\n<p>Aloittamiseksi sinun on tiedett\u00e4v\u00e4 FTP-is\u00e4nn\u00e4n, FTP-k\u00e4ytt\u00e4j\u00e4nimen ja FTP-salasanan tiedot. Kun olet valmis, yksityiskohdat avaa <code>.env<\/code>tiedostot ja lis\u00e4\u00e4 tiedot seuraavasti:<\/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>Muista korvata paikkamerkit todellisilla arvoilla. Seuraavaksi avaa <code>config\/filesystems.php<\/code>tiedosto ja lis\u00e4\u00e4 ftp-kokoonpano levyihin.<\/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>Korvaa DIR_PATH_TO_WHERE_IMAGE_STORE todellisella polulla, johon sinun on tallennettava kuvia. Esimerkiksi, jos meill\u00e4 on kansio nimelt\u00e4 &#8217;kuvat&#8217; ja polku t\u00e4h\u00e4n kansioon on \/ var \/ www \/ html \/ dev \/ images, t\u00e4m\u00e4 polku tulee olemaan arvon &#8217;root&#8217; edellisess\u00e4 taulukossa.<\/p>\n<p>Tiedostojen lataamiseen FTP: n kautta tarvitaan lomake, johon k\u00e4ytt\u00e4j\u00e4 voi l\u00e4hett\u00e4\u00e4 kuvan. Lis\u00e4\u00e4 alla oleva koodi n\u00e4kym\u00e4tiedostoon.<\/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>Korvaa PASS_ACTION_URL_HERE todellisella reitill\u00e4si. Koska tiedostojen lataamiseen k\u00e4ytet\u00e4\u00e4n Laravel-tallennustilaa, k\u00e4ytt\u00e4j\u00e4n on lis\u00e4tt\u00e4v\u00e4 julkisivu ohjaintiedostoon seuraavasti:<\/p>\n<pre><code>use IlluminateSupportFacadesStorage;<\/code><\/pre>\n<p>Lopuksi ohjaimen toimintakoodi olisi seuraava:<\/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>&#8217;profile_image&#8217; on tiedostotiedostomme nimi. Rakennamme tiedostomme yksil\u00f6llisen nimen ja lataamme sen sitten ulkoiselle palvelimelle. Huomaa, ett\u00e4 olemme k\u00e4ytt\u00e4neet Storage :: disk (&#8217;ftp&#8217;) -menetelm\u00e4\u00e4. T\u00e4m\u00e4 toiminto tallentaa tiedostomme polulle, joka on m\u00e4\u00e4ritelty kokoonpanossa. K\u00e4ytt\u00e4j\u00e4n tulisi tallentaa arvo &#8217;$ filenametostore&#8217; tietokantaan.<\/p>\n<h3>Hae tai poista kuva<\/h3>\n<p>K\u00e4sittelemme kuvia niin ilmeisesti, ett\u00e4 meid\u00e4n on n\u00e4ytett\u00e4v\u00e4 n\u00e4m\u00e4 kuvat verkkosivustolla. Kun tallennamme n\u00e4it\u00e4 kuvia tunnetulle ulkoiselle palvelimelle, k\u00e4ytt\u00e4j\u00e4n tulisi tiet\u00e4\u00e4 sen kansion HTTP-polku, johon tallennamme kuvat. Se voi olla jotain sellaista kuin YOUR_DOMAIN_URL \/ images \/. Ohjainmenetelm\u00e4ss\u00e4 meid\u00e4n tulisi tallentaa kuvan nimi tietokantaan. Joten HTML img -tagimme on seuraava:<\/p>\n<pre><code>&lt;img src=\"YOUR_DOMAIN_URL\/images\/FILE_NAME\" \/&gt;<\/code><\/pre>\n<p>T\u00e4ss\u00e4 FILE_NAME on kuvasi nimi, joka on tallennettu tietokantaan. K\u00e4ytt\u00e4j\u00e4 voi poistaa tiedoston seuraavalla tavalla:<\/p>\n<pre><code>Storage::disk('ftp')-&gt;delete('FILE_NAME');<\/code><\/pre>\n<h4>Aiheeseen liittyv\u00e4t artikkelit<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/kuinka-ladata-tiedosto-s3-een-laravel-tiedostojarjestelman-avulla\/\" title=\"Kuinka ladata tiedosto S3: een Laravel-tiedostoj\u00e4rjestelm\u00e4n avulla\">Kuinka ladata tiedosto S3: een Laravel-tiedostoj\u00e4rjestelm\u00e4n avulla<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/lataa-tiedostot-amazon-s3-een-aws-php-sdk-n-avulla\/\" title=\"L\u00e4het\u00e4 tiedostoja Amazon S3: een AWS PHP SDK: n avulla\">L\u00e4het\u00e4 tiedostoja Amazon S3: een AWS PHP SDK: n avulla<\/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>T\u00e4ss\u00e4 artikkelissa tutkitaan, kuinka kuva ladataan toiseen palvelimeen FTP: n kautta Laravelissa. Kuvien is\u00e4nn\u00f6inti ulkoiselle palvelimelle voi v\u00e4hent\u00e4\u00e4 palvelimen kaistanleveytt\u00e4 ja parantaa sivuston nopeutta.<\/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":[499],"tags":[843],"class_list":["post-23730","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts\/23730","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/comments?post=23730"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts\/23730\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/media\/21643"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/media?parent=23730"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/categories?post=23730"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/tags?post=23730"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}