2017-11-09 1 views
0

Ich habe es geschafft, die FTP-Verbindung zu einem Remote-Server (ein Oracle-Server) mit ColdFusion2016 CFFILE zu bekommen.CFFILE bekomme Dateifehler

Ich brauche OracleData.txt Datei aus dem Oracle-Server in diesem Verzeichnis zu erhalten: /oracle/admin/mydbname/myfolder/OracleData.txt aber ich erhalte immer Fehlermeldung sagen:

ist ein Fehler aufgetreten während der sFTP putFile-Operation.
Fehler: /home/www/TestFolder/XX/MyTestFile.txt (keine solche Datei oder Verzeichnis).

Dieses Verzeichnis (/ home/www/TestFolder/XX /) ist gültig und es ist dort, das ist ein Unix-Server-Verzeichnis. Ich kann dieses Verzeichnis über FileZilla erreichen.

So sehen meine Codes wie folgt aus:

<!--- open connection ---><!--- This works! ---> 
    <!--- cfftp.succeeded: Returns YES ---> 
    <cfftp action="open" 
     connection="myConn" 
    username="validusername" 
    password="validpassword" 
    port="22" 
    server="mycompany.com" 
    stopOnError="true" 
    fingerprint="valid:finger:print:value" 
    secure="YES" 
    timeout="300">    

    <!--- This doesn't work ---><!--- it returns no such file or directory error ---> 
    <cfftp connection = "myConn" 
     action = "putFile" 
     name = "uploadFile" 
     transferMode = "binary" 
     localFile = "/home/www/TestFolder/XX/MyTestFile.txt" 
     remoteFile = "OracleData.txt"> 

Ich bin verwechseln mit dem Attribut localfile und entfernteDatei. Ist mein Verständnis korrekt, wenn ich die OracleData.txt, die Datei, die ich aus dem Oracle-Verzeichnis bekommen möchte, hier anlege? Was ist das localFile-Attribut für ??? Ich dachte, ich muss ein Verzeichnis zuweisen, wo OracleData.txt kopiert werden soll. Es existiert keine Datei in diesem Verzeichnis Unix

+0

Laut https://helpx.adobe.com/coldfusion/cfml-reference/coldfusion-tags/tags-f/cfftp-connection-file-and-directory-operations.html scheint es, dass localFile auf eine Datei verweist in Erinnerung. – snackboy

+0

Sprechen Sie mit Ihrem Server Admin Menschen. Fragen Sie sie, wo der FTP-Root auf diesem Server ist. –

+0

Bitte klären Sie Ihre Frage. Sie sagen, Sie müssen eine Datei vom Server "holen", haben aber Schwierigkeiten mit "Put" -Operationen. –

Antwort

0
  • Wenn Coldfusion-Server auf „Server A“ ausgeführt wird, und Sie die Datei von „Server B“ zu bewegen, zurück zu „Server A“, dann action="GetFile" verwenden.
  • Wenn Sie die Datei von „Server A“ nehmen wollen und es auf Server B bewegen, dann verwenden action="PutFile"

Weitere Empfehlungen, die ich machen würde ist, dass Sie von dem ersten open Anschlussblock loswerden sollten und nur Verwenden Sie den Befehl get oder put direkt mit dem Serverpasswort und dem Benutzernamen darin. Ich habe festgestellt, dass die Wiederverwendung einer Verbindung tatsächlich ziemlich fehlerhaft ist, und Sie erhalten bessere/zuverlässigere Leistungsergebnisse, indem Sie die Datei direkt übertragen.

Was würde ich weiter vorschlagen, dass Sie mit der listDir Aktion ein kleines Experiment tun, um sicherzustellen, dass Sie in dem Stammverzeichnis, die Sie in sein wollen, dass, können Sie tun:.

<cfftp action="ListDir" 
    directory="/home" name="local.qList" 
    username="validusername" 
    password="validpassword" 
    port="22" 
    server="mycompany.com" 
    stopOnError="true" 
    fingerprint="valid:finger:print:value" 
    secure="YES" 
    timeout="300"> 

<cfdump var="#local.qList#"> 

Wenn Sie das tun, erhalten Sie eine Vorstellung davon, was das Verzeichnis ist, das Sie angeben. Sie können damit herumspielen und den Verzeichniswert ändern, um den Verzeichniswert einzugeben.

+0

Danke! Es klappt! – user3779216