로컬 임시 파일에 ftp "get"을 수행하는 cfc에 대한 호출을 프록시했습니다. 그런 다음 파일을 읽고 파일 내용을 문자열로 반환합니다. 나는 그것이 정상적인 cfm 파일로 cfc에서 꺼낼 때 코드가 올바르게 작동한다는 것을 알고있다. 그러나 내 프록시 callBackHandler
에서 cfc 결과가 null로 나타납니다. 문자열이 CFC에서 반환해야 다음왜 cfreturn은 null입니까?
<cfajaxproxy cfc="ftpfunc" jsclassname="jsobj" />
function getFTP() {
...
var instance = new jsobj();
instance.setCallbackHandler(ftpSuccess);
instance.setErrorHandler(ftpError);
instance.setReturnFormat('plain');
instance.getJCL(lpar,remoteFile,userName,password);
}
.. 그리고 callbackHandler를, :
function ftpSuccess(ftpReturn)
{
// error thrown right here: "ftpReturn is Null"
if (ftpReturn.length==0)
{ alert("Your FTP Get returned a blank file"); }
}
사용되는 특정 구문이 여기에 프록시 코드? 예를 들어 반환 유형이 구조체 또는 쿼리 인 경우 ftpReturn.DATA
과 같은 것을 사용해야합니다. 스트레이트 끈은 어때? 어떤 도움
감사
편집 : 이것은 CFC
<cffunction name="getJCL" output="false" access="remote" securejson="true">
<cfargument name="lpar" type="string" required="yes">
<cfargument name="remoteFile" type="string" required="yes">
<cfargument name="userName" type="string" required="yes">
<cfargument name="password" type="string" required="yes">
<cfset var ftpReturn = "">
<cfftp action="open"
connection="getConnection"
password="#arguments.password#"
secure="yes"
server="#arguments.lpar#"
stopOnError="no"
timeout="30"
username="#arguments.username#">
<cfset tempFile="D:\myDir\#RandRange(10000000,99999999)#.tmp">
<cfftp action="getFile"
connection="getConnection"
localFile="#tempFile#"
remoteFile="#arguments.remoteFile#"
transferMode="auto">
<cffile action = "read" file = "#tempFile#" variable = "Message">
<cfset ftpReturn = Message>
<cfreturn ftpReturn>
</cffunction>
반환되는 beig을 볼 수 있도록 cfc를 표시합니다. – Paul
Fiddler (http://fiddler2.com)를 설치하고이를 사용하여 요청/응답을 봅니다. 관리자 (피들러 UI 오른쪽 하단)에는 반환되는 데이터의 구조를 보여주는 JSON 탭이 있습니다. 아무 것도 표시되지 않으면 RAW 탭을 사용하여 서버가 반환하는 것을 정확하게 표시하십시오. 그게 당신이 서버 또는 클라이언트 문제인지 알게 될 것입니다. – barnyr
변수가 deinstantiated되면 내 경험에 null이됩니다.따라서 CFFILE이 길이가 0 인 파일을 읽으면 Message에 null에 대한 Java 포인터가있을 수 있습니다. – Salsero69