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

Kuidas faile PHP-s kaugserverisse edastada

23

Failide või piltide välisse serverisse salvestamine on tänapäeval tavaline käitumine. Inimesed kasutavad failide salvestamiseks pilvemälu, näiteks AWS, Azure, Google Cloud, Backblaze või oma kaugserverit. Selle stsenaariumi korral salvestab kasutaja failid teise serverisse ja kutsub seda läbi oma rakendusserveris oleva lingi. Selle tegemise eeliseks on serveri ribalaiuse kokkuhoid, mis toob kaasa parema serveri jõudluse.

Varem järgisime kliendi projektiga töötades seda tehnikat piltide kaugserverisse salvestamiseks. Kliendi sooviks oli piltide saatmine omaenda välisserverisse ja helistamine rakendusest kuhu vaja. Sel juhul pidime pärast kaugserverisse üleslaadimist salvestama kaugpildi tee andmebaasi.

Selles artiklis me näitame teile, kuidas faile PHP kaudu kaugserverisse FTP kaudu edastada. Selle õpetuse huvides kasutame üleslaadimiseks pilte. Kasutaja saab valida mis tahes tüüpi faili vastavalt nende nõuetele.

Alustamine

Jätkamiseks peaks teil olema oma serveri FTP-mandaat. Teine nõue on helilooja. Veenduge, et olete oma süsteemi installinud Composeri. Kasutate Flysystemi paketti, mis nõuab installimiseks Composerit.

Avage oma projekti juurkataloogis terminal ja käivitage allolev käsk.

composer require league/flysystem

Pärast installimist looge HTML-vormingus faili sisestamise ja esitamise nupp. Seda vormi kasutatakse pildi sirvimiseks ja serverisse saatmiseks.

<form method="post" action="upload.php" enctype="multipart/form-data">
    <input type="file" name="image" /><br>
    <input type="submit" name="submit" value="Submit">
</form>

Failide edastamine kaugserverisse

Olete installinud Flysystemi teegi ja loonud ka HTML-vormi. Järgmine asi, mida tuleb teha, on võtta pilt failisisest ja saata see kaugserverisse. Sisaldate upload.phpallolevat koodi.

<?php
require_once "vendor/autoload.php";
 
use LeagueFlysystemFilesystem;
use LeagueFlysystemAdapterFtp as Adapter;
 
if(isset($_POST['submit'])) {
 
    if(isset($_FILES['image']['name']) && !empty($_FILES['image']['name'])) {
 
        try {
            $filesystem = new Filesystem(new Adapter([
                'host' => 'HOST_NAME_HERE',
                'username' => 'USERNAME_HERE',
                'password' => 'PASSWORD_HERE',
            ]));
 
            $stream = fopen($_FILES['image']['tmp_name'], 'r+');
            $filesystem->putStream('public_html/images/'.$_FILES['image']['name'], $stream);
 
            if (is_resource($stream)) {
                fclose($stream);
            }
 
            echo "Image uploaded on external server successfully.";
        } catch(Exception $e) {
            echo $e->getMessage();
        }
    }
}

Asendage kohatäited tegelike väärtustega. Siin salvestame pilte public_html/imageskataloogi. Saate seda teed oma nõuete järgi kohandada. Ülaltoodud koodis loob Flysystem FTP kaudu ühenduse teie serveriga, loeb pildi sisu ja asetab pildi määratud teele.

Loodame, et saite teada, kuidas PHP-s faile kaugserverisse edastada. Flysystemi abil saate faile edastada ka AWS S3, Azure, Dropbox jne. Selle paketi kohta saate lisateavet nende ametlikust dokumentatsioonist.

seotud artiklid

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