{"id":27296,"date":"2021-05-05T15:33:00","date_gmt":"2021-05-05T12:33:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=27296"},"modified":"2021-10-17T05:14:12","modified_gmt":"2021-10-17T02:14:12","slug":"hur-man-laddar-upp-bilder-till-en-annan-server-via-ftp-i-laravel","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/sv\/hur-man-laddar-upp-bilder-till-en-annan-server-via-ftp-i-laravel\/","title":{"rendered":"Hur man laddar upp bilder till en annan server via FTP i Laravel"},"content":{"rendered":"<p>Vill du ladda upp dina filer fr\u00e5n din Laravel-applikation till en annan server via FTP? Laravel kommer med det inbyggda st\u00f6det f\u00f6r att ladda upp filer till extern server eller moln. I den h\u00e4r guiden visar vi dig hur du laddar upp filer (bilder) till en annan server via FTP p\u00e5 Laravels webbplats.<\/p>\n<p>Att vara v\u00e4rd f\u00f6r bilder p\u00e5 en annan server kan hj\u00e4lpa till att f\u00f6rb\u00e4ttra din webbplatshastighet. Denna teknik \u00e4r typ av parallellkoppling mellan en webbl\u00e4sare och servrarna. Det minskar belastningen fr\u00e5n en server eftersom f\u00f6r webbl\u00e4sare ger ett samtal till en annan 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> ger ett bekv\u00e4mt s\u00e4tt att hantera v\u00e5ra filer p\u00e5 molnet eller den externa servern. Anv\u00e4ndaren kan v\u00e4lja olika Laravel-lagringsleverant\u00f6rer som S3, Rackspace, FTP eller SFTP. L\u00e5t oss ta en titt p\u00e5 Laravel-fil\u00f6verf\u00f6ring med FTP-drivrutin.<\/p>\n<h3>Ladda upp filer till en annan server via FTP-drivrutin<\/h3>\n<p>F\u00f6r att komma ig\u00e5ng b\u00f6r du k\u00e4nna till detaljerna f\u00f6r din FTP-v\u00e4rd, FTP-anv\u00e4ndarnamn och FTP-l\u00f6senord. En g\u00e5ng \u00e4r du redo att \u00f6ppna <code>.env<\/code>filerna och l\u00e4gga till informationen enligt nedan:<\/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>Se till att ers\u00e4tta platsh\u00e5llarna med de faktiska v\u00e4rdena. \u00d6ppna sedan <code>config\/filesystems.php<\/code>filen och l\u00e4gg till &#8217;ftp&#8217; -konfigurationen i &#8217;disks&#8217; array.<\/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>Ers\u00e4tt DIR_PATH_TO_WHERE_IMAGE_STORE med den aktuella s\u00f6kv\u00e4gen d\u00e4r du beh\u00f6ver lagra bilder. Till exempel, om vi har en mapp som heter &#8217;images&#8217; och s\u00f6kv\u00e4gen till den h\u00e4r mappen \u00e4r \/ var \/ www \/ html \/ dev \/ images s\u00e5 kommer denna s\u00f6kv\u00e4g att g\u00e5 som v\u00e4rdet f\u00f6r &#8217;root&#8217; i ovanst\u00e5ende array.<\/p>\n<p>F\u00f6r att ladda upp filer via FTP beh\u00f6ver vi ett formul\u00e4r d\u00e4r en anv\u00e4ndare kan skicka bilden. L\u00e4gg till koden nedan i din vyfil.<\/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>Du b\u00f6r ers\u00e4tta PASS_ACTION_URL_HERE med din faktiska rutt. Eftersom vi anv\u00e4nder en Laravel Storage f\u00f6r fil\u00f6verf\u00f6ring m\u00e5ste anv\u00e4ndaren l\u00e4gga till fasad i kontrollfilen enligt f\u00f6ljande:<\/p>\n<pre><code>use IlluminateSupportFacadesStorage;<\/code><\/pre>\n<p>Slutligen skulle din kontrollerfunktionskod vara som nedan:<\/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; \u00e4r namnet p\u00e5 v\u00e5r filinmatning. Vi bygger det unika namnet p\u00e5 v\u00e5r fil och laddar sedan upp den till en extern server. Observera att vi har anv\u00e4nt Storage :: disk (&#8217;ftp&#8217;) -metoden. Den h\u00e4r funktionen lagrar v\u00e5r fil till s\u00f6kv\u00e4gen enligt definitionen i konfigurationen. En anv\u00e4ndare b\u00f6r lagra v\u00e4rdet &#8217;$ filenametostore&#8217; i din databas.<\/p>\n<h3>H\u00e4mta eller ta bort bild<\/h3>\n<p>Vi har att g\u00f6ra med bilderna s\u00e5 uppenbart att vi m\u00e5ste visa dessa bilder p\u00e5 webbplatsen. N\u00e4r vi lagrar dessa bilder p\u00e5 den k\u00e4nda externa servern s\u00e5 ska en anv\u00e4ndare k\u00e4nna till HTTP-s\u00f6kv\u00e4gen till den mapp d\u00e4r vi lagrar bilderna. Det kan vara ungef\u00e4r YOUR_DOMAIN_URL \/ bilder \/. I controller-metoden ska vi lagra namnet p\u00e5 bilden i databasen. S\u00e5 v\u00e5r HTML img-tagg kommer att f\u00f6lja:<\/p>\n<pre><code>&lt;img src=\"YOUR_DOMAIN_URL\/images\/FILE_NAME\" \/&gt;<\/code><\/pre>\n<p>H\u00e4r \u00e4r FILE_NAME ditt bildnamn som lagras i databasen. Anv\u00e4ndaren kan ta bort filen p\u00e5 f\u00f6ljande s\u00e4tt:<\/p>\n<pre><code>Storage::disk('ftp')-&gt;delete('FILE_NAME');<\/code><\/pre>\n<h4>relaterade artiklar<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/sv\/hur-laddar-jag-upp-filen-till-s3-med-laravel-filesystem\/\" title=\"Hur laddar jag upp filen till S3 med Laravel Filesystem\">Hur laddar jag upp filen till S3 med Laravel Filesystem<\/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 studerar vi hur man laddar upp bilden till en annan server via FTP i Laravel. Att vara v\u00e4rd f\u00f6r bilder p\u00e5 en extern server kan minska bandbredden p\u00e5 en server och bidra till att f\u00f6rb\u00e4ttra webbplatshastigheten.<\/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":[503],"tags":[850],"class_list":["post-27296","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel2-10","tag-affiai-sv"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/posts\/27296","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=27296"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/posts\/27296\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/media\/21643"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/media?parent=27296"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/categories?post=27296"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/tags?post=27296"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}