2013-02-26 13 views
0

我正在使用ColdFusion 8,Windows 7 o/s和MySql數據庫。我通過從我的數據庫中獲取記錄來創建一個xml文件。然後我想將它上傳到我的FTP位置。下面是我創建xml的代碼。我如何通過FTP上傳這個XML?如何將xml字符串上傳到ftp?

<cfquery name="getData" datasource="datasourcename" dbtype="ODBC" username="myusername" password="mypassword"> 
    Select * from orders where orderid in (100,102,104) 
</cfquery> 

<cfset csvstr = createObject("java","java.lang.StringBuffer")> 
<cfoutput query="getData"> 
    <cfset csvstr.append("?xml version=""1.0""?>") > 
    <cfset csvstr.append("EDIData xmlns:eci=""http://www.abcdefg.com/CustomerReport"" ") > 
    <cfset csvstr.append("  xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" ") > 
    <cfset csvstr.append("  xsi:noNamespaceSchemaLocation=""CustomerReport.xsd"">") > 
    <cfset csvstr.append(" MarketerDunsNumber>"& #MarketerDunsNumber# &"/MarketerDunsNumber>") > 
    <cfset csvstr.append(" UtilityDunsNumber>"& #UtilityDunsNumber# &"/UtilityDunsNumber>") > 
    <cfset csvstr.append(" Record RecordType="""& #RecordType# &""">") > 
    <cfset csvstr.append(" NameCode>"& #NameCode# &"/NameCode>") > 
    <cfset csvstr.append(" ContactName>"& #ContactName# &"/ContactName>") > 
    <cfset csvstr.append(" /Record>") > 
    <cfset csvstr.append("/EDIData>") > 
    <cfset csvstr.append(Chr(13) & Chr(10)) > 
    <cfset sFileName="CTData_"& #MarketerDunsNumber# &"_"& #UtilityDunsNumber# &".xml"> 
</cfoutput> 
+1

你可以使用'cfftp' http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=Tags_f_16.html – 2013-02-26 12:55:13

+0

Coldfusion也有一些xml標籤,它提供了比你做的更簡單的方法。 – 2013-02-26 12:57:01

回答

2
<cfoutput query= "getData"> 

    <cfsavecontent variable= "sXMLContent"> 
    <EDIData xmlns:eci="http://www.abcdefg.com/CustomerReport" 
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
       xsi:noNamespaceSchemaLocation="CustomerReport.xsd"> 
     <MarketerDunsNumber>#MarketerDuinsNumber#</MarketerDunsNumber> 
     <UtilityDunsNumber>#UtilityDunsNumber#</UtilityDunsNumber> 
     <Record RecordType="#RecordType#"> 
      <NameCode>#NameCode#</NameCode> 
      <ContactName>#ContactName#</ContactName> 
     </Record> 
    </EDIData> 

    </cfsavecontent> 

    <cfset sTemporaryFileName= "xmlToFTP.xml" /> 
    <cfset sRemoteFileName= "xmlToFTP.xml" /> 

    <cffile action=  "write" 
      file=  "#getTempDirectory()#/#sTemporaryFileName#" 
      content= "#toString(XMLParse(sXMLContent))#" /> 
    <cftry> 
     <cfftp action=  "putFile" 
       server=  "some.ftp.server.com" 
       user=  "user" 
       password= "password" 
       localFile= "#getTempDirectory()#/#sTemporaryFileName#" 
       remoteFile= "#sRemoteFileName#" /> 

     <cfcatch> 
      <!--- TODO: Do something with your error here. ---> 

     </cfcatch> 
    </cftry> 

</cfoutput> 

東西有點像這樣。它應該足以讓你開始。