✅ WEB ja WordPressi uudised, teemad, pistikprogrammid. Siin jagame näpunäiteid ja parimaid veebisaidi lahendusi.

Kuidas laadida pilte Laraveli FTP kaudu teise serverisse

25

Kas soovite oma failid oma Laraveli rakendusest FTP kaudu teise serverisse üles laadida? Laraveli juurde kuulub sisseehitatud tugi failide üleslaadimiseks välisserverisse või pilve. Selles juhendis näitame teile, kuidas faile (pilte) Laraveli veebisaidil FTP kaudu teisele serverile üles laadida.

Piltide majutamine mõnes teises serveris aitab parandada saidi kiirust. See tehnika on omamoodi paralleelne ühendus veebibrauseri ja serverite vahel. See vähendab ühe serveri koormust, kuna piltide brauser helistab teisele serverile.

Laraveli failisüsteem pakub mugavat viisi meie failide haldamiseks pilves või välises serveris. Kasutaja saab valida erinevaid Laraveli salvestusepakkujaid nagu S3, Rackspace, FTP või SFTP. Vaatame Laraveli failide üleslaadimist FTP draiveri abil.

Laadige failid FTP-draiveri kaudu teise serverisse üles

Alustamiseks peaksite teadma oma FTP hosti üksikasju, FTP kasutajanime ja FTP parooli. Kui olete üksikasjad valmis, avage .envfailid ja lisage üksikasjad allpool:

FTP_HOST=YOUR_FTP_HOST_VALUE
FTP_USERNAME=YOUR_FTP_USERNAME_VALUE
FTP_PASSWORD=YOUR_FTP_PASSWORD_VALUE

Asendage kohatäited tegelike väärtustega. Järgmisena avage config/filesystems.phpfail ja lisage massiivi ‘kettad’ ‘ftp’ konfiguratsioon.

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

Asendage DIR_PATH_TO_WHERE_IMAGE_STORE tegeliku teega, kuhu peate pilte salvestama. Näiteks kui meil on kaust nimega "images" ja selle kausta tee on / var / www / html / dev / images, siis läheb see tee ülaltoodud massiivi "root" väärtuseks.

FTP kaudu failide üleslaadimiseks vajame vormi, kuhu kasutaja saab pildi esitada. Lisage allolev kood oma vaatefaili.

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

Peaksite PASS_ACTION_URL_HERE asendama oma tegeliku marsruudiga. Kuna kasutame failide üleslaadimiseks Laraveli salvestusruumi, peab kasutaja kontrolleri faili lisama Fassaadi järgmiselt:

use IlluminateSupportFacadesStorage;

Lõpuks oleks teie kontrolleri funktsioonikood järgmine:

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 meie failisisendi nimi. Ehitame oma faili ainulaadse nime ja laadime selle seejärel üles välisele serverile. Pange tähele, et oleme kasutanud meetodit Storage :: disk (‘ftp’). See funktsioon salvestaks meie faili konfiguratsioonis määratletud teele. Kasutaja peaks teie andmebaasi salvestama väärtuse ‘$ filenametostore’.

Pildi toomine või kustutamine

Tegeleme piltidega nii ilmselgelt, peame need pildid veebisaidil kuvama. Kuna me hoiame neid pilte teadaolevas välises serveris, peaks kasutaja teadma kausta, kuhu pilte salvestame, HTTP-teed. See võib olla midagi sellist nagu YOUR_DOMAIN_URL / images /. Kontrolleri meetodis peaksime pildi nime andmebaasi salvestama. Nii et meie HTML img-märgend on järgmine:

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

Siin on FILE_NAME teie pildi nimi, mis on andmebaasi salvestatud. Kasutaja saab faili kustutada järgmisel viisil:

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

seotud artiklid

See veebisait kasutab teie kasutuskogemuse parandamiseks küpsiseid. Eeldame, et olete sellega rahul, kuid saate soovi korral loobuda. Nõustu Loe rohkem