WEB и WordPress новости, темы, плагины. Здесь мы делимся советами и лучшими решениями для сайтов.

Как передавать файлы на удаленный сервер в PHP

429

Хранение файлов или изображений на внешнем сервере – обычное дело в настоящее время. Люди используют облачное хранилище, такое как AWS, Azure, Google Cloud, Backblaze, или собственный удаленный сервер для хранения файлов. В этом сценарии пользователь хранит файлы на другом сервере и вызывает его по ссылке на своем сервере приложений. Преимущество этого заключается в том, что это экономит полосу пропускания на сервере, что приводит к повышению его производительности.

Раньше, работая над клиентским проектом, мы использовали эту технику для хранения изображений на удаленном сервере. Клиент хотел отправить изображения на свой собственный внешний сервер и вызывать его из приложения, когда это необходимо. В этом случае нам нужно было сохранить путь к удаленному изображению в базе данных после его загрузки на удаленный сервер.

В этой статье мы покажем вам, как передавать файлы на удаленный сервер на PHP через FTP. В этом уроке мы используем изображения для загрузки. Пользователь может выбрать любой тип файла в соответствии со своими требованиями.

Начиная

Чтобы продолжить, у вас должны быть учетные данные FTP вашего сервера. Еще одно требование – композитор. Убедитесь, что в вашей системе установлен Composer. Вы собираетесь использовать пакет Flysystem, для установки которого требуется Composer.

Откройте терминал в корневом каталоге вашего проекта и выполните команду ниже.

composer require league/flysystem

После установки создайте HTML-форму с кнопкой ввода файла и отправки. Эта форма будет использоваться для просмотра изображения и отправки его на сервер.

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

Передача файлов на удаленный сервер

Вы установили библиотеку Flysystem, а также создали HTML-форму. Следующее, что нужно сделать, это взять изображение из входного файла и отправить его на удаленный сервер. Ваш upload.phpбудет содержать приведенный ниже код.

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

Замените заполнители фактическими значениями. Здесь мы храним изображения внутри public_html/imagesкаталога. Вы можете настроить этот путь в соответствии с вашими требованиями. В приведенном выше коде Flysystem подключается к вашему серверу через FTP, считывает содержимое изображения и помещает изображение по указанному пути.

Надеемся, вы узнали о том, как передавать файлы на удаленный сервер на PHP. Используя Flysystem, вы также можете передавать файлы на AWS S3, Azure, Dropbox и т.д. Вы можете узнать больше об этом пакете в их официальной документации.

Статьи по Теме

Источник записи: artisansweb.net

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее