{"id":27991,"date":"2021-05-15T11:53:00","date_gmt":"2021-05-15T08:53:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=27991"},"modified":"2021-10-17T04:57:11","modified_gmt":"2021-10-17T01:57:11","slug":"hur-man-overfor-filer-till-fjarrserver-i-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/sv\/hur-man-overfor-filer-till-fjarrserver-i-php\/","title":{"rendered":"Hur man \u00f6verf\u00f6r filer till fj\u00e4rrserver i PHP"},"content":{"rendered":"<p>Att lagra filer eller bilder p\u00e5 en extern server \u00e4r ett vanligt beteende nuf\u00f6rtiden. M\u00e4nniskor anv\u00e4nder molnlagring som AWS, Azure, Google Cloud, Backblaze eller sin egen fj\u00e4rrserver f\u00f6r att lagra filerna. I det scenariot lagrar anv\u00e4ndaren filer p\u00e5 en annan server och anropar dem via l\u00e4nken p\u00e5 deras applikationsserver. F\u00f6rdelen med att g\u00f6ra detta \u00e4r att det sparar bandbredd p\u00e5 en server vilket resulterar i b\u00e4ttre serverprestanda.<\/p>\n<p>Tidigare, under arbetet med en klients projekt, f\u00f6ljde vi den h\u00e4r tekniken f\u00f6r att lagra bilder p\u00e5 en fj\u00e4rrserver. Vad klienten ville var att skicka bilder till sin egen externa server och ringa det fr\u00e5n en applikation varhelst det beh\u00f6vs. I s\u00e5 fall beh\u00f6vde vi lagra fj\u00e4rrbilds\u00f6kv\u00e4gen i databasen efter att ha laddat upp den till en fj\u00e4rrserver.<\/p>\n<p>I den h\u00e4r artikeln visar vi dig hur du \u00f6verf\u00f6r filer till en fj\u00e4rrserver i PHP via FTP. F\u00f6r den h\u00e4r handledningens skull anv\u00e4nder vi bilder f\u00f6r uppladdning. Anv\u00e4ndaren kan v\u00e4lja vilken typ av fil som helst enligt deras krav.<\/p>\n<h3>Komma ig\u00e5ng<\/h3>\n<p>F\u00f6r att g\u00e5 vidare b\u00f6r du ha din FTP-referens. Ett annat krav \u00e4r komposit\u00f6ren. Se till att du har installerat <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composer<\/a> p\u00e5 ditt system. Du ska anv\u00e4nda paketet <a href=\"https:\/\/github.com\/thephpleague\/flysystem\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Flysystem<\/a> som kr\u00e4ver Composer f\u00f6r installation.<\/p>\n<p>\u00d6ppna terminalen i din projektkatalog och k\u00f6r kommandot nedan.<\/p>\n<pre><code>composer require league\/flysystem<\/code><\/pre>\n<p>Skapa ett HTML-formul\u00e4r med filinmatning och skicka-knappen vid installationen. Det h\u00e4r formul\u00e4ret anv\u00e4nds f\u00f6r att bl\u00e4ddra i bilden och skicka den till servern.<\/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>\u00d6verf\u00f6r filer till fj\u00e4rrservern<\/h3>\n<p>Du har installerat Flysystem-biblioteket och ocks\u00e5 skapat ett HTML-formul\u00e4r. N\u00e4sta sak som beh\u00f6ver g\u00f6ras \u00e4r att ta bilden fr\u00e5n filinmatningen och skicka den till en fj\u00e4rrserver. Din <code>upload.php<\/code>kommer att inneh\u00e5lla koden nedan.<\/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>Ers\u00e4tt platsh\u00e5llarna med de faktiska v\u00e4rdena. H\u00e4r lagrar vi bilder i <code>public_html\/images<\/code>katalogen. Du kan justera den h\u00e4r s\u00f6kv\u00e4gen enligt dina krav. I ovanst\u00e5ende kod ansluter Flysystem till din server via FTP, l\u00e4ser bildinneh\u00e5llet och placerar bilden p\u00e5 den angivna s\u00f6kv\u00e4gen.<\/p>\n<p>Vi hoppas att du fick veta hur du \u00f6verf\u00f6r filer till fj\u00e4rrservern i PHP. Med Flysystem kan du ocks\u00e5 \u00f6verf\u00f6ra filer till AWS S3, Azure, Dropbox etc. Du kan l\u00e4ra dig mer om detta paket i deras <a href=\"https:\/\/flysystem.thephpleague.com\/v1\/docs\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">officiella dokumentation<\/a>.<\/p>\n<h4>relaterade artiklar<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/sv\/hur-man-laddar-upp-bilder-till-en-annan-server-via-ftp-i-laravel\/\" title=\"Hur man laddar upp bilder till en annan server via FTP i Laravel\">Hur man laddar upp bilder till en annan server via FTP i Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/sv\/ladda-upp-filer-till-amazon-s3-med-aws-php-sdk\/\" title=\"Ladda upp filer till Amazon S3 med AWS PHP SDK\">Ladda upp filer till Amazon S3 med AWS PHP SDK<\/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>I den h\u00e4r artikeln visar vi hur du \u00f6verf\u00f6r filer till fj\u00e4rrserver i PHP. Om du lagrar filer p\u00e5 fj\u00e4rrservern och anropar den fr\u00e5n applikationsservern sparas bandbredd<\/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":[279],"tags":[850],"class_list":["post-27991","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\/27991","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=27991"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/posts\/27991\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/media\/21909"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/media?parent=27991"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/categories?post=27991"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/tags?post=27991"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}