【问题标题】:coldfusion ftpsclient storefileColdfusion ftpsclient 存储文件
【发布时间】:2014-06-24 07:00:54
【问题描述】:

我正在使用 ftpsclient 进行 ftp 文件传输,因为它是显式 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:\Users\test\test.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 

这意味着在 storefie 回复代码出来之后是“500”。

我不知道代码有什么问题,如果有人可以帮忙。

提前致谢!

【问题讨论】:

  • 看起来像500 internal server error.
  • 是的,但是文件 ""C:\Users\test\test.txt"" 在那里。
  • 而 500 代表“语法错误,命令无法识别并且请求的操作未发生。这可能包括命令行太长等错误。”在 ftp 返回代码列表中。
  • 嗯,这是一个很好的线索。您是否检查过您的命令以确保它们有效?
  • 是的,我检查过了,这是我通过commons.apache.org/proper/commons-net/apidocs/src-html/org/…引用的链接

标签: coldfusion ftp ftps


【解决方案1】:

尝试执行 PROT 命令。你可以把它放在 enterLocalPassiveMode() 行之后

ftpsClient.execPROT("P");

通过这种方式,我能够让它在我的本地测试中工作。

PROT 处理数据保护级别。如果未提供,则将其作为 Clear 发送。 P 代表私人。我猜它传输文件不安全。

getReplyString() 显示什么?它是否说明数据通道不安全?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-24
    • 1970-01-01
    • 2013-06-09
    相关资源
    最近更新 更多