{"id":23714,"date":"2021-05-05T16:03:00","date_gmt":"2021-05-05T13:03:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=23714"},"modified":"2021-10-18T02:21:14","modified_gmt":"2021-10-17T23:21:14","slug":"comment-telecharger-des-images-sur-un-autre-serveur-via-ftp-dans-laravel","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fr\/comment-telecharger-des-images-sur-un-autre-serveur-via-ftp-dans-laravel\/","title":{"rendered":"Comment t\u00e9l\u00e9charger des images sur un autre serveur via FTP dans Laravel"},"content":{"rendered":"<p>Voulez-vous t\u00e9l\u00e9charger vos fichiers depuis votre application Laravel vers un autre serveur via FTP\u00a0? Laravel est livr\u00e9 avec la prise en charge int\u00e9gr\u00e9e du t\u00e9l\u00e9chargement de fichiers sur un serveur externe ou un cloud. Dans ce guide, nous vous montrons comment t\u00e9l\u00e9charger des fichiers (images) sur un autre serveur via FTP sur le site Web de Laravel.<\/p>\n<p>L&rsquo;h\u00e9bergement d&rsquo;images sur un autre serveur peut aider \u00e0 am\u00e9liorer la vitesse de votre site. Cette technique est une sorte de connexion parall\u00e8le entre un navigateur Web et les serveurs. Cela r\u00e9duit la charge d&rsquo;un serveur car le navigateur d&rsquo;images appellera un autre serveur.<\/p>\n<p><a href=\"https:\/\/laravel.com\/docs\/5.6\/filesystem\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Laravel Filesystem<\/a> fournit un moyen pratique de g\u00e9rer nos fichiers sur le cloud ou un serveur externe. L&rsquo;utilisateur peut choisir diff\u00e9rents fournisseurs de stockage Laravel comme S3, Rackspace, FTP ou SFTP. Jetons un coup d&rsquo;\u0153il au t\u00e9l\u00e9chargement de fichiers Laravel \u00e0 l&rsquo;aide du pilote FTP.<\/p>\n<h3>T\u00e9l\u00e9charger des fichiers sur un autre serveur via un pilote FTP<\/h3>\n<p>Pour commencer, vous devez conna\u00eetre les d\u00e9tails de votre h\u00f4te FTP, de votre nom d&rsquo;utilisateur FTP et de votre mot de passe FTP. Une fois que vous \u00eates pr\u00eat avec les d\u00e9tails, ouvrez les <code>.env<\/code>fichiers et ajoutez les d\u00e9tails comme ci-dessous\u00a0:<\/p>\n<pre><code>FTP_HOST=YOUR_FTP_HOST_VALUE\nFTP_USERNAME=YOUR_FTP_USERNAME_VALUE\nFTP_PASSWORD=YOUR_FTP_PASSWORD_VALUE<\/code><\/pre>\n<p>Assurez-vous de remplacer les espaces r\u00e9serv\u00e9s par les valeurs r\u00e9elles. Ensuite, ouvrez le <code>config\/filesystems.php<\/code>fichier et ajoutez la configuration &lsquo;ftp&rsquo; au tableau &lsquo;disks&rsquo;.<\/p>\n<p><strong>config\/filesystems.php<\/strong><\/p>\n<pre><code>&lt;?php\nreturn [\n\u00a0\u00a0\u00a0\u00a0......\n\u00a0\u00a0\u00a0\u00a0'disks' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0......\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'ftp' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'driver' =&gt; 'ftp',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'host' =&gt; env('FTP_HOST'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'username' =&gt; env('FTP_USERNAME'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'password' =&gt; env('FTP_PASSWORD'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'root' =&gt; 'DIR_PATH_TO_WHERE_IMAGE_STORE' \/\/ for example: \/var\/www\/html\/dev\/images\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0],\n\u00a0\u00a0\u00a0\u00a0],\n\u00a0\u00a0\u00a0\u00a0\u00a0\n];<\/code><\/pre>\n<p>Remplacez DIR_PATH_TO_WHERE_IMAGE_STORE par le chemin r\u00e9el o\u00f9 vous devez stocker les images. Par exemple, si nous avons un dossier appel\u00e9 &lsquo;images&rsquo; et que le chemin d&rsquo;acc\u00e8s \u00e0 ce dossier est \/var\/www\/html\/dev\/images, alors ce chemin sera la valeur de &lsquo;root&rsquo; dans le tableau ci-dessus.<\/p>\n<p>Pour t\u00e9l\u00e9charger des fichiers via FTP, nous avons besoin d&rsquo;un formulaire o\u00f9 un utilisateur peut soumettre l&rsquo;image. Ajoutez le code ci-dessous dans votre fichier de vue.<\/p>\n<pre><code>&lt;form action=\"{{ url('PASS_ACTION_URL_HERE') }}\" method=\"post\" enctype=\"multipart\/form-data\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;div class=\"form-group\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;label for=\"exampleInputFile\"&gt;File input&lt;\/label&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input type=\"file\" name=\"profile_image\" id=\"exampleInputFile\" multiple \/&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0{{ csrf_field() }}\n\u00a0\u00a0\u00a0\u00a0&lt;button type=\"submit\" class=\"btn btn-default\"&gt;Submit&lt;\/button&gt;\n&lt;\/form&gt;<\/code><\/pre>\n<p>Vous devez remplacer PASS_ACTION_URL_HERE par votre itin\u00e9raire r\u00e9el. Comme nous utilisons un stockage Laravel pour le t\u00e9l\u00e9chargement de fichiers, l&rsquo;utilisateur doit ajouter Facade au fichier du contr\u00f4leur comme suit\u00a0:<\/p>\n<pre><code>use IlluminateSupportFacadesStorage;<\/code><\/pre>\n<p>Enfin, le code de fonction de votre contr\u00f4leur serait le suivant\u00a0:<\/p>\n<pre><code>public function store(Request $request)\n{\n\u00a0\u00a0\u00a0\u00a0if($request-&gt;hasFile('profile_image')) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/get filename with extension\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$filenamewithextension = $request-&gt;file('profile_image')-&gt;getClientOriginalName();\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/get filename without extension\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$filename = pathinfo($filenamewithextension, PATHINFO_FILENAME);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/get file extension\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$extension = $request-&gt;file('profile_image')-&gt;getClientOriginalExtension();\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/filename to store\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$filenametostore = $filename.'_'.uniqid().'.'.$extension;\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/Upload File to external server\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Storage::disk('ftp')-&gt;put($filenametostore, fopen($request-&gt;file('profile_image'), 'r+'));\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/Store $filenametostore in the database\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0return redirect('images')-&gt;with('status', \"Image uploaded successfully.\");\n}<\/code><\/pre>\n<p>&lsquo;profile_image&rsquo; est le nom de notre fichier d&rsquo;entr\u00e9e. Nous construisons le nom unique de notre fichier, puis le t\u00e9l\u00e9chargeons sur un serveur externe. Notez que nous avons utilis\u00e9 la m\u00e9thode Storage::disk(&lsquo;ftp&rsquo;). Cette fonction stockerait notre fichier dans le chemin d\u00e9fini dans la configuration. Un utilisateur doit stocker la valeur &lsquo;$filenametostore&rsquo; dans votre base de donn\u00e9es.<\/p>\n<h3>R\u00e9cup\u00e9rer ou supprimer une image<\/h3>\n<p>Nous avons affaire aux images, donc \u00e9videmment, nous devons afficher ces images sur le site Web. Comme nous stockons ces images sur le serveur externe connu, un utilisateur doit donc conna\u00eetre le chemin HTTP du dossier dans lequel nous stockons les images. Cela peut \u00eatre quelque chose comme YOUR_DOMAIN_URL\/images\/. Dans la m\u00e9thode du contr\u00f4leur, nous devons stocker le nom de l&rsquo;image dans la base de donn\u00e9es. Ainsi, notre balise HTML img sera la suivante\u00a0:<\/p>\n<pre><code>&lt;img src=\"YOUR_DOMAIN_URL\/images\/FILE_NAME\" \/&gt;<\/code><\/pre>\n<p>Ici FILE_NAME est le nom de votre image stock\u00e9 dans la base de donn\u00e9es. L&rsquo;utilisateur peut supprimer le fichier de la mani\u00e8re suivante\u00a0:<\/p>\n<pre><code>Storage::disk('ftp')-&gt;delete('FILE_NAME');<\/code><\/pre>\n<h4>Articles Li\u00e9s<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/comment-telecharger-un-fichier-sur-s3-a-l-aide-du-systeme-de-fichiers-laravel\/\" title=\"Comment t\u00e9l\u00e9charger un fichier sur S3 \u00e0 l&#039;aide du syst\u00e8me de fichiers Laravel\">Comment t\u00e9l\u00e9charger un fichier sur S3 \u00e0 l&rsquo;aide du syst\u00e8me de fichiers 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 \u00e9tudions comment t\u00e9l\u00e9charger l&rsquo;image sur un autre serveur via FTP dans Laravel. L&rsquo;h\u00e9bergement d&rsquo;images sur un serveur externe peut r\u00e9duire la bande passante sur un serveur et aider \u00e0 am\u00e9liorer la vitesse du site.<\/p>\n","protected":false},"author":1,"featured_media":21643,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[497],"tags":[844],"class_list":["post-23714","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel2-4","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/23714","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=23714"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/23714\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media\/21643"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media?parent=23714"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/categories?post=23714"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/tags?post=23714"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}