{"id":24276,"date":"2021-05-15T12:38:00","date_gmt":"2021-05-15T09:38:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24276"},"modified":"2021-10-17T20:58:32","modified_gmt":"2021-10-17T17:58:32","slug":"kuinka-siirtaa-tiedostoja-etapalvelimelle-php-ssa","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fi\/kuinka-siirtaa-tiedostoja-etapalvelimelle-php-ssa\/","title":{"rendered":"Kuinka siirt\u00e4\u00e4 tiedostoja et\u00e4palvelimelle PHP: ss\u00e4"},"content":{"rendered":"<p>Tiedostojen tai kuvien tallentaminen ulkoiselle palvelimelle on nyky\u00e4\u00e4n yleist\u00e4. Ihmiset k\u00e4ytt\u00e4v\u00e4t tiedostojen tallentamiseen pilvitallennustilaa, kuten AWS, Azure, Google Cloud, Backblaze tai omaa et\u00e4palvelinta. T\u00e4ss\u00e4 tilanteessa k\u00e4ytt\u00e4j\u00e4 tallentaa tiedostot toiselle palvelimelle ja kutsu sit\u00e4 sovelluspalvelimen linkin kautta. T\u00e4m\u00e4n tekemisen etuna on, ett\u00e4 se s\u00e4\u00e4st\u00e4\u00e4 palvelimen kaistanleveytt\u00e4, mik\u00e4 parantaa palvelimen suorituskyky\u00e4.<\/p>\n<p>Aiemmin ty\u00f6skennelless\u00e4mme asiakkaan projektissa seurasimme t\u00e4t\u00e4 tekniikkaa kuvien tallentamiseksi et\u00e4palvelimelle. Asiakas halusi l\u00e4hett\u00e4\u00e4 kuvia omalle ulkoiselle palvelimelleen ja kutsua sit\u00e4 sovelluksesta miss\u00e4 tahansa. Siin\u00e4 tapauksessa meid\u00e4n piti tallentaa et\u00e4kuvan polku tietokantaan sen j\u00e4lkeen, kun l\u00e4hetimme sen et\u00e4palvelimeen.<\/p>\n<p>T\u00e4ss\u00e4 artikkelissa n\u00e4yt\u00e4mme, kuinka tiedostoja voidaan siirt\u00e4\u00e4 PHP: n et\u00e4palvelimelle FTP: n kautta. T\u00e4m\u00e4n opetusohjelman vuoksi k\u00e4yt\u00e4mme kuvia lataamiseen. K\u00e4ytt\u00e4j\u00e4 voi valita mink\u00e4 tahansa tyyppisen tiedoston vaatimustensa mukaisesti.<\/p>\n<h3>P\u00e4\u00e4st\u00e4 alkuun<\/h3>\n<p>Jatkaaksesi, sinulla on oltava palvelimesi FTP-tunnistetiedot. Toinen vaatimus on s\u00e4velt\u00e4j\u00e4. Varmista, ett\u00e4 olet asentanut <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composerin<\/a> j\u00e4rjestelm\u00e4\u00e4n. Aiot k\u00e4ytt\u00e4\u00e4 <a href=\"https:\/\/github.com\/thephpleague\/flysystem\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Flysystem-pakettia,<\/a> joka vaatii Composerin asennuksen.<\/p>\n<p>Avaa p\u00e4\u00e4te projektin juurihakemistossa ja suorita alla oleva komento.<\/p>\n<pre><code>composer require league\/flysystem<\/code><\/pre>\n<p>Luo asennuksen j\u00e4lkeen HTML-lomake, jossa on tiedostosy\u00f6tt\u00f6 ja L\u00e4het\u00e4-painike. T\u00e4t\u00e4 lomaketta k\u00e4ytet\u00e4\u00e4n kuvan selaamiseen ja l\u00e4hett\u00e4miseen palvelimelle.<\/p>\n<pre><code>&lt;form method=\"post\" action=\"upload.php\" enctype=\"multipart\/form-data\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"file\" name=\"image\" \/&gt;&lt;br&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"submit\" name=\"submit\" value=\"Submit\"&gt;\n&lt;\/form&gt;<\/code><\/pre>\n<h3>Siirr\u00e4 tiedostoja et\u00e4palvelimeen<\/h3>\n<p>Olet asentanut Flysystem-kirjaston ja luonut my\u00f6s HTML-lomakkeen. Seuraava asia, joka on teht\u00e4v\u00e4, on ottaa kuva tiedostotiedostosta ja l\u00e4hett\u00e4\u00e4 se et\u00e4palvelimelle. Antamasi <code>upload.php<\/code>koodi sis\u00e4lt\u00e4\u00e4 alla olevan koodin.<\/p>\n<pre><code>&lt;?php\nrequire_once \"vendor\/autoload.php\";\n\u00a0\nuse LeagueFlysystemFilesystem;\nuse LeagueFlysystemAdapterFtp as Adapter;\n\u00a0\nif(isset($_POST['submit'])) {\n\u00a0\n\u00a0\u00a0\u00a0\u00a0if(isset($_FILES['image']['name']) &amp;&amp; !empty($_FILES['image']['name'])) {\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0try {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$filesystem = new Filesystem(new Adapter([\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'host' =&gt; 'HOST_NAME_HERE',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'username' =&gt; 'USERNAME_HERE',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'password' =&gt; 'PASSWORD_HERE',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0]));\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$stream = fopen($_FILES['image']['tmp_name'], 'r+');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$filesystem-&gt;putStream('public_html\/images\/'.$_FILES['image']['name'], $stream);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (is_resource($stream)) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0fclose($stream);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo \"Image uploaded on external server successfully.\";\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} catch(Exception $e) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo $e-&gt;getMessage();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p>Korvaa paikkamerkit todellisilla arvoilla. T\u00e4ss\u00e4 on tallennettu kuvia <code>public_html\/images<\/code>hakemistoon. Voit s\u00e4\u00e4t\u00e4\u00e4 t\u00e4t\u00e4 polkua vaatimuksesi mukaan. Edell\u00e4 olevassa koodissa Flysystem muodostaa yhteyden palvelimeesi FTP: n kautta, lukee kuvasis\u00e4ll\u00f6n ja laittaa kuvan m\u00e4\u00e4ritetylle polulle.<\/p>\n<p>Toivomme, ett\u00e4 sait tiet\u00e4\u00e4 kuinka siirt\u00e4\u00e4 tiedostoja et\u00e4palvelimelle PHP: ss\u00e4. Flysystemin avulla voit my\u00f6s siirt\u00e4\u00e4 tiedostoja AWS S3: lla, Azure: lla, Dropboxilla jne. Voit oppia lis\u00e4\u00e4 t\u00e4st\u00e4 paketista heid\u00e4n <a href=\"https:\/\/flysystem.thephpleague.com\/v1\/docs\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">virallisista asiakirjoistaan<\/a>.<\/p>\n<h4>Aiheeseen liittyv\u00e4t artikkelit<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/kuinka-ladata-kuvia-toiselle-palvelimelle-ftp-n-kautta-laravelissa\/\" title=\"Kuinka ladata kuvia toiselle palvelimelle FTP: n kautta Laravelissa\">Kuinka ladata kuvia toiselle palvelimelle FTP: n kautta Laravelissa<\/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 n\u00e4yt\u00e4mme, kuinka tiedostoja siirret\u00e4\u00e4n et\u00e4palvelimelle PHP: ss\u00e4. Tiedostojen tallentaminen et\u00e4palvelimelle ja soittaminen sovelluspalvelimelta s\u00e4\u00e4st\u00e4\u00e4 kaistanleveytt\u00e4<\/p>\n","protected":false},"author":1,"featured_media":21909,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[275],"tags":[843],"class_list":["post-24276","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-6","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts\/24276","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=24276"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts\/24276\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/media\/21909"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/media?parent=24276"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/categories?post=24276"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/tags?post=24276"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}