...
✅ WEB- och WordPress -nyheter, teman, plugins. Här delar vi tips och bästa webbplatslösningar.

Hur man laddar upp bilder till en annan server via FTP i Laravel

19

Vill du ladda upp dina filer från din Laravel-applikation till en annan server via FTP? Laravel kommer med det inbyggda stödet för att ladda upp filer till extern server eller moln. I den här guiden visar vi dig hur du laddar upp filer (bilder) till en annan server via FTP på Laravels webbplats.

Att vara värd för bilder på en annan server kan hjälpa till att förbättra din webbplatshastighet. Denna teknik är typ av parallellkoppling mellan en webbläsare och servrarna. Det minskar belastningen från en server eftersom för webbläsare ger ett samtal till en annan server.

Laravel Filesystem ger ett bekvämt sätt att hantera våra filer på molnet eller den externa servern. Användaren kan välja olika Laravel-lagringsleverantörer som S3, Rackspace, FTP eller SFTP. Låt oss ta en titt på Laravel-filöverföring med FTP-drivrutin.

Ladda upp filer till en annan server via FTP-drivrutin

För att komma igång bör du känna till detaljerna för din FTP-värd, FTP-användarnamn och FTP-lösenord. En gång är du redo att öppna .envfilerna och lägga till informationen enligt nedan:

FTP_HOST=YOUR_FTP_HOST_VALUE
FTP_USERNAME=YOUR_FTP_USERNAME_VALUE
FTP_PASSWORD=YOUR_FTP_PASSWORD_VALUE

Se till att ersätta platshållarna med de faktiska värdena. Öppna sedan config/filesystems.phpfilen och lägg till ‘ftp’ -konfigurationen i ‘disks’ array.

config / filesystems.php

<?php
return [
    ......
    'disks' => [
        ......
        'ftp' => [
            'driver' => 'ftp',
            'host' => env('FTP_HOST'),
            'username' => env('FTP_USERNAME'),
            'password' => env('FTP_PASSWORD'),
            'root' => 'DIR_PATH_TO_WHERE_IMAGE_STORE' // for example: /var/www/html/dev/images
        ],
    ],
     
];

Ersätt DIR_PATH_TO_WHERE_IMAGE_STORE med den aktuella sökvägen där du behöver lagra bilder. Till exempel, om vi har en mapp som heter ‘images’ och sökvägen till den här mappen är / var / www / html / dev / images så kommer denna sökväg att gå som värdet för ‘root’ i ovanstående array.

För att ladda upp filer via FTP behöver vi ett formulär där en användare kan skicka bilden. Lägg till koden nedan i din vyfil.

<form action="{{ url('PASS_ACTION_URL_HERE') }}" method="post" enctype="multipart/form-data">
    <div class="form-group">
        <label for="exampleInputFile">File input</label>
        <input type="file" name="profile_image" id="exampleInputFile" multiple />
    </div>
    {{ csrf_field() }}
    <button type="submit" class="btn btn-default">Submit</button>
</form>

Du bör ersätta PASS_ACTION_URL_HERE med din faktiska rutt. Eftersom vi använder en Laravel Storage för filöverföring måste användaren lägga till fasad i kontrollfilen enligt följande:

use IlluminateSupportFacadesStorage;

Slutligen skulle din kontrollerfunktionskod vara som nedan:

public function store(Request $request)
{
    if($request->hasFile('profile_image')) {
         
        //get filename with extension
        $filenamewithextension = $request->file('profile_image')->getClientOriginalName();
 
        //get filename without extension
        $filename = pathinfo($filenamewithextension, PATHINFO_FILENAME);
 
        //get file extension
        $extension = $request->file('profile_image')->getClientOriginalExtension();
 
        //filename to store
        $filenametostore = $filename.'_'.uniqid().'.'.$extension;
 
        //Upload File to external server
        Storage::disk('ftp')->put($filenametostore, fopen($request->file('profile_image'), 'r+'));
 
        //Store $filenametostore in the database
    }
 
    return redirect('images')->with('status', "Image uploaded successfully.");
}

‘profile_image’ är namnet på vår filinmatning. Vi bygger det unika namnet på vår fil och laddar sedan upp den till en extern server. Observera att vi har använt Storage :: disk (‘ftp’) -metoden. Den här funktionen lagrar vår fil till sökvägen enligt definitionen i konfigurationen. En användare bör lagra värdet ‘$ filenametostore’ i din databas.

Hämta eller ta bort bild

Vi har att göra med bilderna så uppenbart att vi måste visa dessa bilder på webbplatsen. När vi lagrar dessa bilder på den kända externa servern så ska en användare känna till HTTP-sökvägen till den mapp där vi lagrar bilderna. Det kan vara ungefär YOUR_DOMAIN_URL / bilder /. I controller-metoden ska vi lagra namnet på bilden i databasen. Så vår HTML img-tagg kommer att följa:

<img src="YOUR_DOMAIN_URL/images/FILE_NAME" />

Här är FILE_NAME ditt bildnamn som lagras i databasen. Användaren kan ta bort filen på följande sätt:

Storage::disk('ftp')->delete('FILE_NAME');

relaterade artiklar

Inspelningskälla: artisansweb.net

Denna webbplats använder cookies för att förbättra din upplevelse. Vi antar att du är ok med detta, men du kan välja bort det om du vill. Jag accepterar Fler detaljer