✅ Notícias, temas e plug-ins da WEB e do WordPress. Aqui compartilhamos dicas e as melhores soluções para sites.

Como transferir arquivos para servidor remoto em PHP

203

Armazenar arquivos ou imagens em um servidor externo é um comportamento comum hoje em dia. As pessoas usam armazenamento em nuvem como AWS, Azure, Google Cloud, Backblaze ou seu próprio servidor remoto para armazenar os arquivos. Nesse cenário, o usuário armazena arquivos em outro servidor e o chama por meio do link em seu servidor de aplicativos. A vantagem de fazer isso é economizar largura de banda em um servidor, o que resulta em melhor desempenho do servidor.

No passado, ao trabalhar em um projeto de cliente, seguíamos essa técnica para armazenar imagens em um servidor remoto. O que o cliente queria era enviar imagens para seu próprio servidor externo e chamá-lo de um aplicativo sempre que necessário. Nesse caso, precisávamos armazenar o caminho da imagem remota no banco de dados após carregá-lo em um servidor remoto.

Neste artigo, mostraremos como transferir arquivos para um servidor remoto em PHP através de FTP. Por causa deste tutorial, usamos imagens para fazer upload. O usuário pode escolher qualquer tipo de arquivo de acordo com sua necessidade.

Começando

Para prosseguir, você deve ter as credenciais de FTP do seu servidor. Outro requisito é o Composer. Certifique-se de ter instalado o Composer em seu sistema. Você usará um pacote chamado Flysystem que requer o Composer para instalação.

Abra o terminal no diretório raiz do seu projeto e execute o comando abaixo.

composer require league/flysystem

Após a instalação, crie um formulário HTML com entrada de arquivo e botão de envio. Este formulário será usado para navegar pela imagem e enviá-la ao servidor.

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

Transferir arquivos para servidor remoto

Você instalou a biblioteca Flysystem e também criou um formulário HTML. A próxima coisa que precisa fazer é pegar a imagem da entrada do arquivo e enviá-la a um servidor remoto. Seu upload.phpconterá o código abaixo.

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

Substitua os marcadores de posição pelos valores reais. Aqui estamos armazenando imagens dentro do public_html/imagesdiretório. Você pode ajustar este caminho de acordo com sua necessidade. No código acima, Flysystem se conecta ao seu servidor através de FTP, lê o conteúdo da imagem e coloca a imagem no caminho especificado.

Esperamos que você saiba como transferir arquivos para o servidor remoto em PHP. Usando Flysystem, você também pode transferir arquivos no AWS S3, Azure, Dropbox, etc. Você pode aprender mais sobre este pacote em sua documentação oficial.

Artigos relacionados

Fonte de gravação: artisansweb.net

Este site usa cookies para melhorar sua experiência. Presumiremos que você está ok com isso, mas você pode cancelar, se desejar. Aceitar Consulte Mais informação