2010-06-25 17 views
0

Je fournis un compte FTP public permettant aux utilisateurs de télécharger des fichiers dans un dossier temporaire. Une interface AJAX affiche de nouveaux fichiers, puis les utilisateurs peuvent marquer et déplacer le fichier dans un dossier différent. Je voudrais montrer à chaque utilisateur uniquement les fichiers qu'ils ont téléchargés eux-mêmes, pas tous les autres qui pourraient être téléchargés en même temps par d'autres personnes. Les comptes FTP individuels ne sont pas une option.Puis-je obtenir l'adresse IP d'un téléchargement FTP sur le serveur?

Existe-t-il un moyen de connecter l'utilisateur connecté et le téléchargement FTP par adresse IP? Puis-je trouver l'IP uploader pour un fichier donné en utilisant PHP?

Répondre

1

Existe-t-il un moyen de connecter l'utilisateur connecté et le téléchargement FTP par adresse IP? Puis-je trouver l'IP uploader pour un fichier donné en utilisant PHP?

Vous ne parvenez pas à trouver facilement les données d'adresse IP pour les transferts FTP précédents si vous ne les avez pas capturées à ce moment-là. Voulez-vous que vous pourriez certainement enregistrer avant cela, mais:

1) que si votre serveur FTP le permet

2), il y aura probablement l'écrire dans le journal que vous aurez besoin d'analyser puis de comparer avec les fichiers réels (non trivial)

3) l'approche fondamentale est erronée - à moins que vous n'ayez seulement des utilisateurs se connectant via un réseau local, il n'est pas nécessaire que l'adresse du client pour la connexion FTP soit la même que celle du client la connexion HTTP. (par exemple, la connexion HTTP peut passer par un proxy, une connexion FTP directe).

Une approche légèrement meilleure consisterait à utiliser des noms d'utilisateur plutôt que des adresses IP (bien que vous ayez encore des problèmes avec les problèmes 1 et 2).

Mieux encore, mettre au rebut le FTP et faire les téléchargements en utilisant HTTP.

C.

+0

Merci, cela semble être un bon résumé. Je sais que le concept n'est pas très propre, donc il est probablement préférable de le changer plutôt que de faire un gros effort pour l'implémenter. – pixelistik

1

Faites-le avec PHP, vous le montrez sur le web non? Créez une nouvelle table sur votre mysql ou autre db! Chaque fois qu'ils envoient un fichier, enregistrer dans votre nouvelle table sur DB le chemin, ip, web nom d'utilisateur (le cas échéant) et md5sum si vous avez besoin pour plus tard, alors, lors de la liste, il suffit de rechercher le chemin sur la DB le nom d'utilisateur ou IP ... Et quand ils suppriment, supprimez la ligne avec ce chemin, et quand ils se déplacent, changez le chemin de cette ligne. Il est simple :)

;)

EDIT: Désolé pour mon anglais, j'espère que vous comprenez ...

0

L'un des suivants est possible:

  • Modifier votre FTP serveur pour enregistrer le nom de fichier et l'adresse IP dans une base de données ou un fichier. Parcourez les journaux du serveur FTP (qui contiennent supposément des adresses IP et des noms de fichiers) et stockez régulièrement ces informations dans une base de données.
  • Autoriser les utilisateurs à télécharger des fichiers via HTTP. Dans ce cas, vous pouvez l'implémenter avec PHP et stocker l'adresse IP et le nom de fichier.