/ / coldfusion ftpsclient storefile - coldfusion、ftp、ftps

coldfusion ftpsclient storefile - coldfusion、ftp、ftps

私はftpファイル転送のためにftpsclientを使用しています、それは明示的なtlsです

ここでは私が使用しているコード:

<cfscript>
ftpsClient = CreateObject("java","org.apache.commons.net.ftp.FTPSClient").init(JavaCast("boolean",false));

ftpsClient.connect(JavaCast("string","test.hostedftp.com"),21);
connected = ftpsClient.isConnected();

WriteOutput("Is Connected:" &  connected & "<br/>");

reply = ftpsClient.getReplyCode();
WriteOutput("Is reply:" &  reply & "<br/>");

login = ftpsClient.login("test","test");
WriteOutput("Is Logged in:" &  login & "<br/>");

ftpsClient.enterLocalPassiveMode();
ftpsClient.changeWorkingDirectory("/test");
reply = ftpsClient.getReplyCode();
WriteOutput("Is changeWorkingDirectory:" &  reply & "<br/>");


</cfscript>


<cfset fileStream = CreateObject(
"java",
"java.io.FileInputStream"
).Init(
CreateObject(
"java",
"java.io.File"
).Init(
"C:Userstesttest.txt"
)
) />
<cfset storefile = ftpsClient.storeFile("LocalFile.txt", fileStream)>
<cfset replycode = ftpsClient.getReplyCode()>
<cfoutput>#replycode#</cfoutput><br>
<cfset fileStream.close()>
<cfoutput>#storefile#</cfoutput>

しかし、ここにファイルをアップロードしていない "という出力:

Is Connected:YES
Is reply:234
Is Logged in:YES
Is changeWorkingDirectory:250
500
NO

これは店舗返信コードが「500」になった後を意味します。

誰かが助けることができるなら、コードの何が間違っているのか分かりません。

前もって感謝します!

回答:

回答№1は1

PROTコマンドを実行してみてください。 enterLocalPassiveMode()行の後に置くことができます

ftpsClient.execPROT("P");

私はそれを私のローカルテストでこのように働かせることができました。

PROTはデータ保護レベルを扱います。もし提供されていなければ、Clearとして送信します。 Pはプライベートを表します。私が推測しているのは、ファイルを安全に転送していないことです。

getReplyString()は何を表示しますか?データチャネルが安全でないことについて何か言いますか?