2011-01-16 9 views
0

Ich muss Dateien von einem Ordner zum anderen auf dem gleichen SFTP-Server kopieren. Mein Code kopiert derzeit die Dateien lokal und lädt sie neu.cfftp: Datei aus der Ferne kopieren und verschieben?

<cfftp 
    action = "open" 
    username = "#APPLICATION.intxml.SFTPUSERNAME#" 
    password = "#APPLICATION.intxml.SFTPPASSWORD#" 
    connection = "sftpcon" 
    server = "#APPLICATION.intxml.SFTPADDRESS#" 
    port = "#APPLICATION.intxml.SFTPPORT#" 
    timeout = "#APPLICATION.pageTimeout#" 
    secure = "#sftp#"/> 

<cfif cfftp.succeeded> 

    <cfftp action = "LISTDIR" stopOnError = "No" name = "ListFiles" directory = "/#sfolder#" connection = "sftpcon"/> 


    <cfloop query=getFiles> 
     <cfftp action = "GETFILE" 
     stopOnError = "Yes" 
     name = "theFile" 
     transferMode = "binary" 
     timeout = 3600 
     retrycount = 10 
     remoteFile = "#sfolder##name#" 
     localFile = "#dfolder#/#name#" 
     failIfExists = "no" 
     connection = "sftpcon"> 

     <cfftp action = "PUTFILE" 
     stopOnError = "Yes" 
     name = "theFile" 
     transferMode = "binary" 
     timeout = 3600 
     retrycount = 10 
     localfile = "#sfolder##name#" 
     remoteFile = "#dfolder#/#name#" 
     failIfExists = "no" 
     connection = "sftpcon"> 

    </cfloop> 

    </cfif> 

<cfftp action = "close" 
     connection = "sftpcon" 
     stopOnError = "Yes"> 

Gibt es einen besseren Weg, dies mit Coldfusion zu tun?

+1

ich die Googles zu bewegen Dateien im Allgemeinen gesucht mit FTP (http://www.google.com/search?q=ftp%20move%20files%20on%20remote%20server) und es scheint, dass das Umbenennen den Auftrag zum Verschieben von Dateien ausführen kann. – orangepips

+0

habe es versucht, bevor ich die Frage gestellt habe. müssen die Originaldateien behalten. – KobbyPemson

+3

Das FTP-Protokoll unterstützt keine Remote-Kopien. Ihre Download/Upload-Methode ist ungefähr so ​​gut, wie Sie über FTP erhalten können. –

Antwort

0

Fand heraus lösen sollte, dass die ftp protocol keine Möglichkeit vorsieht, eine Datei in einen anderen Ordner aus der Ferne zu kopieren und das halten Original. Dies schließt aus, dass Coldfusion eine Lösung bereitstellt. Verschieben von Dateien auf der anderen Seite kann mit einem Umbenennen erfolgen. Siehe die andere Antwort und Kommentare zu der ursprünglichen Frage.

0

Mit CFFTP Sie RENAME tun können (siehe Info docs), die Ihr Problem

+0

Dies wurde etwa 12 Stunden vor Ihrer Antwort in Frage gestellt. – orangepips

0

-Code Verzeichnisse von Dateien anzuzeigen:

<cfftp 
     username= "username" 
     password= "password" 
     port=  "22" 
     server=  "hostofyousystem" 
     secure=  "yes" 
     name=  "ftpconnection" 
     action=  "listdir" 
     directory= "/" /> 

    <cfdump var="#ftpconnection#" /> 

    <cfoutput query="ftpconnection"> 
     #path#<br/> 
    </cfoutput> 

-Code-Datei zu erhalten und es in unserem System zu speichern, wenn Datei existiert dann ersetzen:

<cfftp 
     username= "username" 
     password= "password" 
     port=  "22" 
     server=  "hostofyousystem" 
     secure=  "yes" 
     action=  "getFile" 
     remotefile= "/myfile.csv" 
     localfile= "D:/web/files/Data/thisfile.csv" 
     failIfExists="no" /> 
Verwandte Themen