2017-11-09 22 views
0

ColdFusion2016 CFFILEを使用してリモートサーバー(oracleサーバー)にFTP接続することができました。CFFILEでファイルの問題が発生しました

私は、このディレクトリでのOracleサーバーからOracleData.txtファイルを取得する必要があります。/oracle/admin/mydbname/myfolder/OracleData.txtが、私はというエラーメッセージが出続ける:

エラーがSFTP中に発生しましたputFile操作です。
エラー:/home/www/TestFolder/XX/MyTestFile.txt(そのようなファイルまたはディレクトリはありません)。

このディレクトリ(/ home/www/TestFolder/XX /)は有効であり、そこにあります。これはUNIXサーバーディレクトリです。 FileZillaでこのディレクトリにアクセスできます。

だから私のコードは次のようになります。私は、属性LOCALFILEとRemoteFileのと混同してい

<!--- 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"> 

。 oracleディレクトリから取得したいファイルOracleData.txtをここに挿入すると、わかりましたか? ???のlocalFile属性とは何ですか? OracleData.txtをコピーする場所にディレクトリを割り当てる必要があると考えました。 ColdFusionサーバーが「サーバーA」上で実行されている、とあなたはaction="GetFile"を使用し、その後、戻って「サーバーA」から「サーバーB」からファイルを移動したい場合は

+0

https://helpx.adobe.com/coldfusion/cfml-reference/coldfusion-tags/tags-f/cfftp-connection-file-and-directory-operations.htmlによると、localFileはファイルを参照しているようですメモリ内にある。 – snackboy

+0

あなたのサーバー管理者に相談してください。 ftpのルートがそのサーバ上のどこにあるのか聞いてください。 –

+0

あなたの質問を明確にしてください。サーバーからファイルを取得する必要があるが、 'put '操作には問題があるとします。 –

答えて

0
  • このUNIXディレクトリ内のファイルなしにはありません。
  • あなたが「サーバーA」からファイルを取得し、サーバーBに移動し、その後、私はなるだろうaction="PutFile"

その他の勧告を使用する場合は、最初open接続ブロックを取り除くだけを取得すべきであるということですgetまたはputコマンドをサーバーのパスワードとユーザー名に直接使用してください。私は、接続の再利用が実際にはむしろバグであることを発見しました。ファイルを直接転送するだけでパフォーマンスが向上します。

私は何をさらに示唆していることは、あなたがになりたいルートディレクトリにあることを確認するlistDirアクションで少し実験を行うということです。つまり、あなたが行うことができます。

<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#"> 

これを行うと、指定したディレクトリが何であるかを知ることができます。あなたはそれを使いこなし、ディレクトリ値を変更して、ディレクトリ値をダイヤルすることができます。

+0

ありがとうございました!できます! – user3779216

関連する問題