mini client ftp en php

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : mini client ftp en php

Re: mini client ftp en php

par he » 10 févr. 2010, 23:55

bon 2go ça sera largement suffisant, maintenant il faut que je vois si je peux modifier php.ini...

et pour la rapidité ça sera pas moins bien http ?

Re: mini client ftp en php

par stealth35 » 10 févr. 2010, 23:27

ha ok je commence à comprendre vos remarques... donc je suis obligé de passer par un upload http et du coup le ftp ne sert à rien.

Donc dans mon cas la seul solution est http en changeant php.ini pour charger des gros fichiers ? c'est bien ça ?
plus ou moins, apache est limite a 2GO, apres y'a d'autre solution comme Java

Re: mini client ftp en php

par he » 10 févr. 2010, 23:10

ha ok je commence à comprendre vos remarques... donc je suis obligé de passer par un upload http et du coup le ftp ne sert à rien.

Donc dans mon cas la seul solution est http en changeant php.ini pour charger des gros fichiers ? c'est bien ça ?

Re: mini client ftp en php

par stealth35 » 10 févr. 2010, 22:59

non il est uploader 1 fois, mais tu le copie via FTP

enfaite FTP avec PHP c'est comme si Filezilla etait sur le serveur.

Re: mini client ftp en php

par he » 10 févr. 2010, 22:20

ça veut dire qu'ici le fichier est uploader 2 fois (par le formulaire + ftp_put ) ?
Du coup quand on utilise FTP il ne faut pas utiliser de formulaire pour choisir le fichier mais autre chose ?

Re: mini client ftp en php

par stealth35 » 10 févr. 2010, 22:03

c'est unitile ton truc, parce que tu envoies deja le fichier sur le serveur, ducoup ta pas besoin de FTP

Re: mini client ftp en php

par he » 10 févr. 2010, 21:58

Désolé mais je ne comprends toujours pas.

J'ai fait ça :

Code : Tout sélectionner

formulaire.html : <form method='post' enctype='multipart/form-data' action='upload.php'> Fichier : <input name='fichier' size='10' type='file'><br><br> <button value='Valider'>Valider</button></form> upload.php : $host = "ftp.truc.fr"; $connect = ftp_connect($host); $login = "xxxxx"; $password = "xxxxx"; if ((!$connect) || (!ftp_login($connect, $login, $password))) { echo "La connexion FTP a échoué"; }else{ ftp_chdir($connect, '/www/fichiers'); ftp_put($connect, "/www/fichiers/".$_FILES['fichier']['name'], $_FILES['fichier']['tmp_name'], FTP_ASCII)) ; ftp_close($connect); }
Ça marche et l'utilisateur n'a pas besoin d'avoir le serveur FTP sur son ordinateur ?

Et pour la deuxième question, ça veut dire qu'il faut demander à l'utilisateur où il veut mettre son fichier + son nom avant de commencer le téléchargement ?
Il n'y a pas moyen d'ouvrir une boite de dialogue une fois le téléchargement terminé ?

Sinon si je fais tout via http est-ce que ça sera aussi rapide qu'avec FTP ?

Re: mini client ftp en php

par Ryle » 10 févr. 2010, 20:43

Il faut distinguer deux choses : le client et le serveur.

En http, le client c'est ton navigateur. Il va se connecter au serveur php envoyer des données en get ou post, transmettre des fichiers, ou télécharger des pages ou des fichiers. En revanche, avec le client tu ne peux te connecter qu'au serveur et pas à un autre client. De même, c'est le client qui vient contacter le serveur et pas le contraire.

En ftp, c'est pareil. Le problème, c'est que les fonction ftp_get et ftp_put sont des fonctions de client FTP. Pour pouvoir les utiliser, il faut donc que php se connecte à un serveur FTP sur lequel il pourra déposer ses fichiers (qui sont déjà sur le serveur de php) ou en télécharger (depuis le serveur ftp pour les charger sur le serveur php) . A aucun moment l'utilisateur n'est impliqué dans cet échange, à moins que le serveur FTP auquel tu te connectes ne soit sur son ordinateur et qu'il accepte de t'en donner les accès...

Et je ne pense pas que cela corresponde à ce que tu souhaites réaliser, alors je préfère prévenir avant que tu ne te lances dans le développement ;)

Ceci étant pour répondre à ta question, lorsque tu télécharges un fichier depuis le serveur FTP vers ton serveur PHP, tu peux tout à fait réaliser une interface pour demander à l'utilisateur où il souhaite mettre le fichier et comment il veut l'appeler, puis faire un rename() du fichier téléchargé pour le déplacer et le renommer.

Re: mini client ftp en php

par Invité » 10 févr. 2010, 19:19

Merci pour ces précisions, mais je ne comprends pas trop ce que tu veux dire ?

Je ne veux pas me servir de client ftp, juste créer une page html où on peut se loger et ensuite via un formulaire choisir un document qui va être uploadé sur le serveur avec php.
Aussi lire le contenu d'un dossier sur le serveur et pouvoir downloader un fichier en cliquant dessus.

Les premiers tests que j'ai fait avec ftp_put et ftp_get marchent, pourquoi il faudrait passer par http ?

Sinon il y a un truc que je n'arrive pas à trouver, avec ftp_get on peut downloader le fichier, mais comment faire pour qu'il y est une fenêtre qui s'ouvre pour choisir l'emplacement et éventuellement le renommer ?

Re: mini client ftp en php

par Ryle » 10 févr. 2010, 19:06

Attention : les fonctions FTP de php lui permettent de se comporter comme un client. C'est à dire que PHP est capable de se connecter à un serveur FTP pour y déposer ou y récupérer des fichiers, mais ne peux pas être contacté par un client FTP pour qu'on lui envoi des fichiers.

Pour faire ce que tu souhaites en php, il te faut effectivement passer par de l'upload / download HTTP. Tu peux ainsi gérer le stockage et les accès aux répertoires par utilisateurs. La seule contrainte serait effectivement la limite de taille autorisée lors de l'upload si tu n'as pas la main sur ce paramétrage de php.

Re: mini client ftp en php

par he » 10 févr. 2010, 18:53

... bon finalement je me suis lancé et ça à l'air assez facile, reste juste à voir au niveau sécurité...

4nh3qn

par he » 10 févr. 2010, 16:50

oui ça serait plutôt pour des gros fichiers, c'est pour ça que je pensais plutôt au ftp

Re: mini client ftp en php

par stealth35 » 10 févr. 2010, 16:47

pas besoin de FTP, tu peux envoyer des fichiers via HTTP, et les lister avec PHP, apres ca depend du volume des donnees si c'est des gros gros fichier alors FTP c'est mieux (SFTP encore mieux)

mini client ftp en php

par he » 10 févr. 2010, 16:42

Bonjour,

Je voudrais réaliser ça en php + html :

un petit client qui permettrait à des gens (préalablement enregistrés dans une base par l'admin) de rentrer leur login et mot de passe et pouvoir ensuite aller déposer et récupérer des fichiers dans un dossier sur le serveur qui leur est aussi préalablement créé par l'admin, donc ils n'auraient accès qu'à ce dossier.

Je connais pas mal php sans être très pro. Je me demande si ce que je veux faire peut-être facile (avec la sécurité qui va avec) ou si ça deviendra vite compliqué.

Aussi existerait-il des solutions tout faite mais très légères et facile à modifier pour ce genre de choses ?

Merci si vous aviez quelques conseils à me donner :)