{"id":24291,"date":"2021-05-15T12:33:00","date_gmt":"2021-05-15T09:33:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24291"},"modified":"2021-10-18T02:18:31","modified_gmt":"2021-10-17T23:18:31","slug":"comment-transferer-des-fichiers-vers-un-serveur-distant-en-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fr\/comment-transferer-des-fichiers-vers-un-serveur-distant-en-php\/","title":{"rendered":"Comment transf\u00e9rer des fichiers vers un serveur distant en PHP"},"content":{"rendered":"<p>Stocker des fichiers ou des images sur un serveur externe est un comportement courant de nos jours. Les gens utilisent un stockage cloud comme AWS, Azure, Google Cloud, Backblaze ou leur propre serveur distant pour stocker les fichiers. Dans ce sc\u00e9nario, l&rsquo;utilisateur stocke les fichiers sur un autre serveur et l&rsquo;appelle via le lien sur son serveur d&rsquo;applications. L&rsquo;avantage de cela est qu&rsquo;il \u00e9conomise de la bande passante sur un serveur, ce qui se traduit par de meilleures performances du serveur.<\/p>\n<p>Dans le pass\u00e9, en travaillant sur le projet d&rsquo;un client, nous utilisions cette technique pour stocker des images sur un serveur distant. Ce que le client voulait, c&rsquo;\u00e9tait envoyer des images \u00e0 son propre serveur externe et l&rsquo;appeler \u00e0 partir d&rsquo;une application l\u00e0 o\u00f9 c&rsquo;\u00e9tait n\u00e9cessaire. Dans ce cas, nous devions stocker le chemin de l&rsquo;image distante dans la base de donn\u00e9es apr\u00e8s l&rsquo;avoir t\u00e9l\u00e9charg\u00e9 sur un serveur distant.<\/p>\n<p>Dans cet article, nous allons vous montrer comment transf\u00e9rer des fichiers vers un serveur distant en PHP via FTP. Pour les besoins de ce tutoriel, nous utilisons des images pour le t\u00e9l\u00e9chargement. L&rsquo;utilisateur peut choisir n&rsquo;importe quel type de fichier selon ses besoins.<\/p>\n<h3>Commencer<\/h3>\n<p>Pour aller plus loin, vous devez disposer des identifiants FTP de votre serveur. Une autre exigence est le compositeur. Assurez-vous d&rsquo;avoir install\u00e9 <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composer<\/a> sur votre syst\u00e8me. Vous allez utiliser un package appel\u00e9 <a href=\"https:\/\/github.com\/thephpleague\/flysystem\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Flysystem<\/a> qui n\u00e9cessite Composer pour l&rsquo;installation.<\/p>\n<p>Ouvrez le terminal dans le r\u00e9pertoire racine de votre projet et ex\u00e9cutez la commande ci-dessous.<\/p>\n<pre><code>composer require league\/flysystem<\/code><\/pre>\n<p>Lors de l&rsquo;installation, cr\u00e9ez un formulaire HTML avec une entr\u00e9e de fichier et un bouton d&rsquo;envoi. Ce formulaire sera utilis\u00e9 pour parcourir l&rsquo;image et l&rsquo;envoyer au serveur.<\/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>Transf\u00e9rer des fichiers vers un serveur distant<\/h3>\n<p>Vous avez install\u00e9 la biblioth\u00e8que Flysystem et \u00e9galement cr\u00e9\u00e9 un formulaire HTML. La prochaine chose \u00e0 faire est de prendre l&rsquo;image du fichier d&rsquo;entr\u00e9e et de l&rsquo;envoyer \u00e0 un serveur distant. Votre <code>upload.php<\/code>contiendra le code ci-dessous.<\/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>Remplacez les espaces r\u00e9serv\u00e9s par les valeurs r\u00e9elles. Ici, nous stockons les images dans le <code>public_html\/images<\/code>r\u00e9pertoire. Vous pouvez ajuster ce chemin selon vos besoins. Dans le code ci-dessus, Flysystem se connecte \u00e0 votre serveur via FTP, lit le contenu de l&rsquo;image et place l&rsquo;image sur le chemin sp\u00e9cifi\u00e9.<\/p>\n<p>Nous esp\u00e9rons que vous avez appris comment transf\u00e9rer des fichiers vers le serveur distant en PHP. En utilisant Flysystem, vous pouvez \u00e9galement transf\u00e9rer des fichiers sur AWS S3, Azure, Dropbox, etc. Vous pouvez en savoir plus sur ce package sur leur <a href=\"https:\/\/flysystem.thephpleague.com\/v1\/docs\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">documentation officielle<\/a>.<\/p>\n<h4>Articles Li\u00e9s<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/comment-telecharger-des-images-sur-un-autre-serveur-via-ftp-dans-laravel\/\" title=\"Comment t\u00e9l\u00e9charger des images sur un autre serveur via FTP dans Laravel\">Comment t\u00e9l\u00e9charger des images sur un autre serveur via FTP dans Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/charger-des-fichiers-sur-amazon-s3-a-l-aide-d-aws-php-sdk\/\" title=\"Charger des fichiers sur Amazon S3 \u00e0 l&#039;aide d&#039;AWS PHP SDK\">Charger des fichiers sur Amazon S3 \u00e0 l&rsquo;aide d&rsquo;AWS PHP SDK<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dans cet article, nous vous montrons comment transf\u00e9rer des fichiers vers un serveur distant en PHP. Stocker des fichiers sur un serveur distant et l&rsquo;appeler \u00e0 partir du serveur d&rsquo;applications permet d&rsquo;\u00e9conomiser de la bande passante<\/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":[273],"tags":[844],"class_list":["post-24291","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-4","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/24291","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/comments?post=24291"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/24291\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media\/21909"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media?parent=24291"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/categories?post=24291"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/tags?post=24291"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}