J'ai besoin de télécharger le même fichier à 2 endroits différents dans le même FTP. Existe-t-il un moyen de copier le fichier sur le FTP à l'autre endroit au lieu de le télécharger à nouveau? Merci.FTP copier un fichier à un autre endroit dans le même FTP
Répondre
Je ne pense pas qu'il existe un moyen de copier des fichiers sans télécharger et re-télécharger, au moins, je n'ai rien trouvé de tel dans le List of FTP commands et aucun client que j'ai vu jusqu'ici supporté quelque chose comme ça.
Oui, le protocole FTP lui-même peut le supporter en théorie. Le FTP RFC 959 en parle dans la section 5.2 (voir le paragraphe commençant par "Quand les données doivent être transférées entre deux serveurs, A et B ..."). Cependant, je ne connais aucun client qui offre ce genre d'opération de contrôle à double serveur. Notez que cette méthode pourrait transférer le fichier du serveur FTP vers lui-même en utilisant son propre réseau, ce qui ne sera pas aussi rapide qu'une copie de fichier locale, mais sera certainement plus rapide que le téléchargement et le ré-uploadage du fichier.
J'ai réussi à faire cela en utilisant WebDrive pour monter le ftp en tant que dossier local, puis "télécharger" les fichiers en utilisant filezilla directement dans le dossier. Il était un peu plus lent que le téléchargement normalement, mais vous n'avez pas besoin de l'espace sur votre disque dur.
Je pense qu'il va encore télécharger le fichier temporairement sur votre machine, puis le télécharger immédiatement sur votre webdrive. Je suppose que vous aurez toujours besoin d'un espace disque suffisant pour y parvenir. –
Vous pouvez renommer le fichier à copier dans le chemin complet de votre résultat souhaité.
Par exemple: Si vous voulez déplacer le fichier « fichier.txt » dans le dossier « NewFolder », vous pouvez l'écrire comme
ftp> rename file.txt NewFolder/file.txt
Cela a fonctionné pour moi.
Cela manque le point de la question - OP explicitement demandé à propos de * copie *, pas de * déplacement * – codeling
Je peux copier des fichiers entre des dossiers distants dans des systèmes basés sur Linux. Dans mon cas particulier, je suis en utilisant le gestionnaire de fichiers très commun PCManFM:
- Menu "Go" -> "Se connecter au serveur"
- information Connexion FTP, etc
- Ouvrir un nouvel onglet dans PCManFM
- se connecter au même serveur
- Copie d'un onglet à ...
il est un peu lent, donc je suppose que cela pourrait être le téléchargement et rechargeant la fichiers, mais c'est fait automatiquement et très convivial.
Il n'existe aucun moyen standard de dupliquer un fichier distant sur le protocole FTP. Certains serveurs FTP prennent en charge les extensions propriétaires ou non standard pour cela.
Certains clients FTP prennent en charge la duplication de fichiers distants. Soit en utilisant les extensions ou via une copie locale temporaire du fichier distant.
Par exemple WinSCP FTP client ne support the duplication utilisant à la fois glisser & déposer et commande de menu/clavier:
- Il prend en charge le
SITE CPFR
/CPTO
l'extension FTP (pris en charge par exemple par le ProFTPD mod_copy module) - Il revient à un duplication automatique via une copie temporaire locale, si l'extension ci-dessus n'est pas disponible.
(je suis l'auteur de WinSCP)
Une autre solution consiste à ouvrir une deuxième connexion au serveur FTP et que le serveur télécharger le fichier sur lui-même en redirigeant un mode passif connexion de données à une connexion de données en mode actif. Cette solution est illustrée dans le answer by @SaadAchemlal.
Je tiens à vous remercier pour l'outil génial qui est WinSCP. – Fatih
Vous pouvez le faire depuis C-Panel.
- Connectez-vous à votre C-Panel.
- Entrer dans le gestionnaire de fichiers.
- Recherchez le fichier ou le dossier que vous souhaitez dupliquer.
- Cliquez avec le bouton droit de la souris et choisissez Copier.
- Entrez le nouveau directeur dans lequel vous souhaitez copier.
Fait!
1) ne laissez pas de 'signature' dans votre message, c'est là que votre profil est pour 2) C-Panel n'est disponible que dans des cas très spécifiques. – Glorfindel
Le code ci-dessous permet au serveur FTP de télécharger le fichier sur lui-même (en utilisant la connexion de bouclage). Il a besoin du serveur FTP pour autoriser le mode de connexion passif et actif.
Si vous voulez comprendre les commandes ftp voici une liste: List of ftp commands
function copyFile($filePath, $newFilePath)
{
$ftp1 = ftp_connect('192.168.1.1');
$ftp2 = ftp_connect('192.168.1.1');
ftp_raw($ftp1, "USER ftpUsername");
ftp_raw($ftp1, "PASS mypassword");
ftp_raw($ftp2, "USER ftpUsername");
ftp_raw($ftp2, "PASS mypassword");
$res = ftp_raw($ftp2, "PASV");
$addressAndPort = substr($res[0], strpos($res[0], '(') + 1);
$addressAndPort = substr($addressAndPort, 0, strpos($addressAndPort, ')'));
ftp_raw($ftp1, "CWD ." . dirname($newFilePath));
ftp_raw($ftp2, "CWD ." . dirname($filePath));
ftp_raw($ftp1, "PORT ".$addressAndPort);
ftp_raw($ftp1, "STOR " . basename($newFilePath));
ftp_raw($ftp2, "RETR " . basename($filePath));
ftp_raw($ftp1, "QUIT");
ftp_raw($ftp2, "QUIT");
}
@MartinPrikryl Eh bien laissez-moi vous dire que cela fonctionne parce que je l'utilise personnellement sur un Synology Nas. De plus, il répond à la question parce que vous avez juste besoin de télécharger votre fichier sur le ftp une fois et d'utiliser ma fonction pour le copier où vous voulez sans le télécharger à nouveau. S'il vous plaît la prochaine fois essayer de tester une solution avant de dire que cela ne fonctionnera pas :) –
Désolé, vous avez raison, je n'ai pas lu le code attentivement. Bien que la prochaine fois, incluez quelques explications dans vos messages, pour éviter toute confusion. +1 + J'ai lié votre réponse à la mienne. –
Je vais essayer d'expliquer plus la prochaine fois.Merci pour l'édition;) –
- 1. copier ou déplacer un fichier d'un serveur ftp à un autre
- 2. Télécharger le fichier à ftp dans silverlight
- 3. FileSystemObject déplace un fichier même lorsqu'il est copié sur FTP
- 4. ASP.net: question FTP, en essayant de déplacer les fichiers ASPX d'un FTP à un autre
- 5. SSIS FTP Task - Récupère le résultat FTP
- 6. Comment lire un fichier texte via FTP?
- 7. Comment faire une tâche FTP SSIS exécuter un script FTP plutôt que de télécharger un fichier?
- 8. Créer un utilisateur FTP dynamiquement
- 9. Sauvegarde cPanel avec PHP et téléchargement vers un autre FTP
- 10. Comment transférer un fichier entre deux serveurs FTP?
- 11. FTP dans NetBeans 6.1
- 12. télécharger un fichier, puis le FTP sur un autre serveur avec PHP
- 13. Comment spécifier un chemin de fichier pour ftp en xml
- 14. écrit à un fichier via FTP en python
- 15. Déploiement FTP dans Eclipse
- 16. Python FTP Fichier le plus récent
- 17. FTP à SFTP dans les scripts shell
- 18. Je ne suis pas en mesure de FTP à un serveur FTP
- 19. Arrêter le téléchargement du fichier FTP
- 20. Transférer un fichier modifié, via FTP, en mode sans échec?
- 21. Erreur FTP dans powershell
- 22. Fichier Flex Crossdomain.xml et FTP
- 23. Comment envoyer un fichier via protocole FTP sécurisé SSL
- 24. FTP FileWatcher
- 25. mettre le fichier sur le serveur FTP dans l'objectif-c
- 26. PassivePortRange problème dans IIS6 (FTP)
- 27. puis-je copier directement un répertoire d'un endroit à un autre?
- 28. Télécharger avec FTP un fichier formulaire en PHP
- 29. SVN FTP Upload avec plusieurs comptes FTP
- 30. Déclencher un fichier quand un fichier est téléchargé dans un ftp
Je me demande si vous avez utilisé cela et spécifié localhost si vous pouvez contourner ce goulot d'étranglement mineur. Même ainsi, nous devons considérer que de nombreux serveurs FTP bloquent FXP (également connu sous le nom de transferts de serveur à serveur) en raison de "attaques de rebond FTP". Mais un serveur FTP intelligent ne le bloquera pas pour localhost. Cependant, cela pourrait bloquer tout FXP. – SilentSteel