✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Jak przesyłać pliki na zdalny serwer w PHP

33

Przechowywanie plików lub obrazów na zewnętrznym serwerze jest obecnie powszechnym zachowaniem. Do przechowywania plików ludzie używają pamięci w chmurze, takiej jak AWS, Azure, Google Cloud, Backblaze lub własnego serwera zdalnego. W tym scenariuszu użytkownik przechowuje pliki na innym serwerze i wywołuje je za pośrednictwem łącza na swoim serwerze aplikacji. Zaletą tego jest oszczędność przepustowości na serwerze, co skutkuje lepszą wydajnością serwera.

W przeszłości, pracując nad projektem klienta, stosowaliśmy tę technikę przechowywania obrazów na zdalnym serwerze. Klient chciał wysyłać obrazy na własny serwer zewnętrzny i wywoływać go z aplikacji w razie potrzeby. W takim przypadku musieliśmy przechowywać zdalną ścieżkę obrazu w bazie danych po przesłaniu go na zdalny serwer.

W tym artykule pokażemy, jak przesyłać pliki na zdalny serwer w PHP przez FTP. Na potrzeby tego samouczka do przesyłania używamy obrazów. Użytkownik może wybrać dowolny typ pliku zgodnie z ich wymaganiami.

Pierwsze kroki

Aby przejść dalej, powinieneś mieć poświadczenia FTP swojego serwera. Kolejnym wymaganiem jest kompozytor. Upewnij się, że zainstalowałeś Composer w swoim systemie. Użyjesz pakietu o nazwie Flysystem, który do instalacji wymaga Composera.

Otwórz terminal w katalogu głównym projektu i uruchom poniższe polecenie.

composer require league/flysystem

Po instalacji utwórz formularz HTML z danymi wejściowymi i przyciskiem prześlij. Ten formularz posłuży do przeglądania obrazu i wysłania go na serwer.

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

Prześlij pliki na zdalny serwer

Zainstalowałeś bibliotekę Flysystem, a także stworzyłeś formularz HTML. Następną rzeczą do zrobienia jest pobranie obrazu z pliku wejściowego i przesłanie go na zdalny serwer. Twój upload.phptestament zawiera poniższy kod.

<?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();
        }
    }
}

Zastąp symbole zastępcze rzeczywistymi wartościami. Tutaj przechowujemy obrazy w public_html/imageskatalogu. Możesz dostosować tę ścieżkę zgodnie ze swoimi wymaganiami. W powyższym kodzie Flysystem łączy się z twoim serwerem przez FTP, odczytuje zawartość obrazu i umieszcza obraz na określonej ścieżce.

Mamy nadzieję, że wiesz, jak przesyłać pliki na zdalny serwer w PHP. Za pomocą Flysystem możesz również przesyłać pliki na AWS S3, Azure, Dropbox itp. Więcej o tym pakiecie możesz dowiedzieć się z ich oficjalnej dokumentacji.

Powiązane artykuły

Źródło nagrywania: artisansweb.net

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów