{"id":27424,"date":"2021-05-15T12:42:00","date_gmt":"2021-05-15T09:42:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=27424"},"modified":"2021-10-18T04:14:15","modified_gmt":"2021-10-18T01:14:15","slug":"como-transferir-arquivos-para-servidor-remoto-em-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pt-pt\/como-transferir-arquivos-para-servidor-remoto-em-php\/","title":{"rendered":"Como transferir arquivos para servidor remoto em PHP"},"content":{"rendered":"<p>Armazenar arquivos ou imagens em um servidor externo \u00e9 um comportamento comum hoje em dia. As pessoas usam armazenamento em nuvem como AWS, Azure, Google Cloud, Backblaze ou seu pr\u00f3prio servidor remoto para armazenar os arquivos. Nesse cen\u00e1rio, o usu\u00e1rio armazena arquivos em outro servidor e o chama por meio do link em seu servidor de aplicativos. A vantagem de fazer isso \u00e9 economizar largura de banda em um servidor, o que resulta em melhor desempenho do servidor.<\/p>\n<p>No passado, ao trabalhar em um projeto de cliente, segu\u00edamos essa t\u00e9cnica para armazenar imagens em um servidor remoto. O que o cliente queria era enviar imagens para seu pr\u00f3prio servidor externo e cham\u00e1-lo de um aplicativo sempre que necess\u00e1rio. Nesse caso, precis\u00e1vamos armazenar o caminho da imagem remota no banco de dados ap\u00f3s carreg\u00e1-lo em um servidor remoto.<\/p>\n<p>Neste artigo, mostraremos como transferir arquivos para um servidor remoto em PHP atrav\u00e9s de FTP. Por causa deste tutorial, usamos imagens para fazer upload. O usu\u00e1rio pode escolher qualquer tipo de arquivo de acordo com sua necessidade.<\/p>\n<h3>Come\u00e7ando<\/h3>\n<p>Para prosseguir, voc\u00ea deve ter as credenciais de FTP do seu servidor. Outro requisito \u00e9 o Composer. Certifique-se de ter instalado o <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composer<\/a> em seu sistema. Voc\u00ea usar\u00e1 um pacote chamado <a href=\"https:\/\/github.com\/thephpleague\/flysystem\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Flysystem<\/a> que requer o Composer para instala\u00e7\u00e3o.<\/p>\n<p>Abra o terminal no diret\u00f3rio raiz do seu projeto e execute o comando abaixo.<\/p>\n<pre><code>composer require league\/flysystem<\/code><\/pre>\n<p>Ap\u00f3s a instala\u00e7\u00e3o, crie um formul\u00e1rio HTML com entrada de arquivo e bot\u00e3o de envio. Este formul\u00e1rio ser\u00e1 usado para navegar pela imagem e envi\u00e1-la ao servidor.<\/p>\n<pre><code>&lt;form method=\"post\" action=\"upload.php\" enctype=\"multipart\/form-data\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"file\" name=\"image\" \/&gt;&lt;br&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"submit\" name=\"submit\" value=\"Submit\"&gt;\n&lt;\/form&gt;<\/code><\/pre>\n<h3>Transferir arquivos para servidor remoto<\/h3>\n<p>Voc\u00ea instalou a biblioteca Flysystem e tamb\u00e9m criou um formul\u00e1rio HTML. A pr\u00f3xima coisa que precisa fazer \u00e9 pegar a imagem da entrada do arquivo e envi\u00e1-la a um servidor remoto. Seu <code>upload.php<\/code>conter\u00e1 o c\u00f3digo abaixo.<\/p>\n<pre><code>&lt;?php\nrequire_once \"vendor\/autoload.php\";\n\u00a0\nuse LeagueFlysystemFilesystem;\nuse LeagueFlysystemAdapterFtp as Adapter;\n\u00a0\nif(isset($_POST['submit'])) {\n\u00a0\n\u00a0\u00a0\u00a0\u00a0if(isset($_FILES['image']['name']) &amp;&amp; !empty($_FILES['image']['name'])) {\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0try {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$filesystem = new Filesystem(new Adapter([\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'host' =&gt; 'HOST_NAME_HERE',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'username' =&gt; 'USERNAME_HERE',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'password' =&gt; 'PASSWORD_HERE',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0]));\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$stream = fopen($_FILES['image']['tmp_name'], 'r+');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$filesystem-&gt;putStream('public_html\/images\/'.$_FILES['image']['name'], $stream);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (is_resource($stream)) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0fclose($stream);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo \"Image uploaded on external server successfully.\";\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} catch(Exception $e) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo $e-&gt;getMessage();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p>Substitua os marcadores de posi\u00e7\u00e3o pelos valores reais. Aqui estamos armazenando imagens dentro do <code>public_html\/images<\/code>diret\u00f3rio. Voc\u00ea pode ajustar este caminho de acordo com sua necessidade. No c\u00f3digo acima, Flysystem se conecta ao seu servidor atrav\u00e9s de FTP, l\u00ea o conte\u00fado da imagem e coloca a imagem no caminho especificado.<\/p>\n<p>Esperamos que voc\u00ea saiba como transferir arquivos para o servidor remoto em PHP. Usando Flysystem, voc\u00ea tamb\u00e9m pode transferir arquivos no AWS S3, Azure, Dropbox, etc. Voc\u00ea pode aprender mais sobre este pacote em sua <a href=\"https:\/\/flysystem.thephpleague.com\/v1\/docs\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">documenta\u00e7\u00e3o oficial<\/a>.<\/p>\n<h4>Artigos relacionados<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/como-fazer-upload-de-imagens-para-outro-servidor-atraves-de-ftp-no-laravel\/\" title=\"Como fazer upload de imagens para outro servidor atrav\u00e9s de FTP no Laravel\">Como fazer upload de imagens para outro servidor atrav\u00e9s de FTP no Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/carregar-arquivos-para-o-amazon-s3-usando-aws-php-sdk\/\" title=\"Carregar arquivos para Amazon S3 usando AWS PHP SDK\">Carregar arquivos para Amazon S3 usando AWS PHP SDK<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Neste artigo, mostramos como transferir arquivos para um servidor remoto em PHP. Armazenar arquivos no servidor remoto e cham\u00e1-lo do servidor de aplicativos economiza largura de banda<\/p>\n","protected":false},"author":1,"featured_media":21909,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[278],"tags":[848],"class_list":["post-27424","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-9","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/27424","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/comments?post=27424"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/27424\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media\/21909"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media?parent=27424"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/categories?post=27424"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/tags?post=27424"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}