✅ WEB- ja WordPress -uutiset, -teemat, -laajennukset. Täällä jaamme vinkkejä ja parhaita verkkosivustoratkaisuja.

Kuinka ladata kuvia toiselle palvelimelle FTP: n kautta Laravelissa

18

Haluatko ladata tiedostosi Laravel-sovelluksestasi toiselle palvelimelle FTP: n kautta? Laravelin mukana tulee sisäänrakennettu tuki tiedostojen lataamiseen ulkoiselle palvelimelle tai pilveen. Tässä oppaassa näytämme, kuinka tiedostoja (kuvia) lähetetään toiselle palvelimelle LTP-palvelun kautta Laravel-verkkosivustolla.

Kuvien isännöinti toisella palvelimella voi auttaa parantamaan sivustosi nopeutta. Tämä tekniikka on eräänlainen rinnakkainen yhteys verkkoselaimen ja palvelinten välillä. Se vähentää yhden palvelimen kuormitusta, sillä kuvaselain soittaa toiselle palvelimelle.

Laravel-tiedostojärjestelmä tarjoaa kätevän tavan hallita tiedostoja pilvessä tai ulkoisella palvelimella. Käyttäjä voi valita erilaisia ​​Laravel-tallennuspalveluntarjoajia, kuten S3, Rackspace, FTP tai SFTP. Katsotaanpa Laravel-tiedostojen lataamista FTP-ohjaimella.

Lähetä tiedostoja toiselle palvelimelle FTP-ohjaimen kautta

Aloittamiseksi sinun on tiedettävä FTP-isännän, FTP-käyttäjänimen ja FTP-salasanan tiedot. Kun olet valmis, yksityiskohdat avaa .envtiedostot ja lisää tiedot seuraavasti:

FTP_HOST=YOUR_FTP_HOST_VALUE
FTP_USERNAME=YOUR_FTP_USERNAME_VALUE
FTP_PASSWORD=YOUR_FTP_PASSWORD_VALUE

Muista korvata paikkamerkit todellisilla arvoilla. Seuraavaksi avaa config/filesystems.phptiedosto ja lisää ftp-kokoonpano levyihin.

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
        ],
    ],
     
];

Korvaa DIR_PATH_TO_WHERE_IMAGE_STORE todellisella polulla, johon sinun on tallennettava kuvia. Esimerkiksi, jos meillä on kansio nimeltä ‘kuvat’ ja polku tähän kansioon on / var / www / html / dev / images, tämä polku tulee olemaan arvon ‘root’ edellisessä taulukossa.

Tiedostojen lataamiseen FTP: n kautta tarvitaan lomake, johon käyttäjä voi lähettää kuvan. Lisää alla oleva koodi näkymätiedostoon.

<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>

Korvaa PASS_ACTION_URL_HERE todellisella reitilläsi. Koska tiedostojen lataamiseen käytetään Laravel-tallennustilaa, käyttäjän on lisättävä julkisivu ohjaintiedostoon seuraavasti:

use IlluminateSupportFacadesStorage;

Lopuksi ohjaimen toimintakoodi olisi seuraava:

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’ on tiedostotiedostomme nimi. Rakennamme tiedostomme yksilöllisen nimen ja lataamme sen sitten ulkoiselle palvelimelle. Huomaa, että olemme käyttäneet Storage :: disk (‘ftp’) -menetelmää. Tämä toiminto tallentaa tiedostomme polulle, joka on määritelty kokoonpanossa. Käyttäjän tulisi tallentaa arvo ‘$ filenametostore’ tietokantaan.

Hae tai poista kuva

Käsittelemme kuvia niin ilmeisesti, että meidän on näytettävä nämä kuvat verkkosivustolla. Kun tallennamme näitä kuvia tunnetulle ulkoiselle palvelimelle, käyttäjän tulisi tietää sen kansion HTTP-polku, johon tallennamme kuvat. Se voi olla jotain sellaista kuin YOUR_DOMAIN_URL / images /. Ohjainmenetelmässä meidän tulisi tallentaa kuvan nimi tietokantaan. Joten HTML img -tagimme on seuraava:

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

Tässä FILE_NAME on kuvasi nimi, joka on tallennettu tietokantaan. Käyttäjä voi poistaa tiedoston seuraavalla tavalla:

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

Aiheeseen liittyvät artikkelit

Tämä verkkosivusto käyttää evästeitä parantaakseen käyttökokemustasi. Oletamme, että olet kunnossa, mutta voit halutessasi kieltäytyä. Hyväksyä Lisätietoja