I think the original poster was looking for FTPS ... Not SFTP. The Jscape link in my prior post supports both, while jsch is strictly for SFTP via SSH.
Jim Rising Sr. Cold Fusion Developer ICGLink Inc. www.icglink.com -----Original Message----- From: Mark Stanton [mailto:[EMAIL PROTECTED] Sent: Wednesday, July 04, 2007 8:35 PM To: CF-Talk Subject: Re: FTPS Here is part of a wrapper we have written for the jsch library. The rest of the component deals with stuff that is specific to our application. hth <cffunction name="init" access="public" output="false" returntype="SFTPManager"> <cfargument name="username" required="true" type="string"> <cfargument name="password" required="true" type="string"> <cfargument name="hostname" required="true" type="string"> <cfargument name="port" required="true" type="numeric"> <cfargument name="basePath" required="true" type="string"> <cfargument name="dsn" required="true" type="string"> <!--- Init objects ---> <cfset variables.JSch = createObject('Java','com.jcraft.jsch.JSch')> <cfset variables.userInfo = createObject('Java','com.jcraft.jsch.UserInfo')> <cfset variables.config = createObject('Java','java.util.Properties').init()> <!--- Init variables ---> <cfset variables.username = arguments.username> <cfset variables.password = arguments.password> <cfset variables.hostname = arguments.hostname> <cfset variables.port = arguments.port> <cfset variables.basePath = arguments.basePath> <cfset variables.dsn = arguments.dsn> <cfreturn this> </cffunction> <cffunction name="upload" access="public" output="false" returntype="boolean"> <cfargument name="file" required="true" type="string"> <cfargument name="path" required="true" type="string"> <cfset var SFTPSession = ""> <cfset var channel = ""> <cfset var putPath = "#variables.basePath#/#arguments.path#"> <cfset var listPath = "#arguments.path#"> <cfset var listEle = ""> <cfset var dirList = ""> <cfset var fileName = ""> <cfset var i = ""> <cfset var success = false> <cfset var xBasePath = ""> <cfset var lastInserted = ""> <cfset var arrayEle = ""> <cfset var arrayIndex = ""> <cfset var loopCount = ""> <cfset var isConnected = ""> <cfset variables.config.put("StrictHostKeyChecking", "no")> <cfset SFTPSession = variables.JSch.getSession(variables.username, variables.hostname, variables.port)> <cfset SFTPSession.setPassword(variables.password)> <cfset SFTPSession.setConfig(variables.config)> <cfset SFTPSession.setUserInfo(variables.userInfo)> <cftry> <!--- Connect SSH session ---> <cfset SFTPSession.connect()> <!--- <cfset isConnected = SFTPSession.isConnected()> ---> <!--- Set up SFTP channel ---> <cfset channel = SFTPSession.openChannel("sftp")> <cfset channel.connect()> <!--- Create remote directories... ---> <cfset xBasePath = variables.basePath> <cfset lastInserted = ""> <cfset arrayEle = arrayNew(1)> <cfset arrayIndex = 1> <cfloop list="#listPath#" index="listEle" delimiters="/"> <cfif lastInserted EQ ""> <cfset arrayEle[arrayIndex] = xBasePath & "/" & listEle> <cfset lastInserted = xBasePath & "/" & listEle> <cfset arrayIndex = arrayIndex + 1> <cfelse> <cfset arrayEle[arrayIndex] = lastInserted & "/" & listEle> <cfset lastInserted = lastInserted & "/" & listEle> <cfset arrayIndex = arrayIndex + 1> </cfif> </cfloop> <cfloop index="loopCount" from="1" to="3"> <cftry> <cfset channel.mkdir(arrayEle[loopCount])> <cfcatch> <!--- directory exists... ---> </cfcatch> </cftry> </cfloop> <cfset channel.put("#arguments.file#",putPath)> <!--- check if uploaded successfully ---> <cfset dirList = channel.ls(putPath)> <cfset fileName = this.extractFileName(arguments.file)> <cfloop from="1" to="#arrayLen(dirList)#" index="i"> <cfif dirList[i].getFilename() EQ fileName AND dirList[i].getAttrs().getSize() EQ fileSize(arguments.file)> <cfset success = true> <cfbreak> <cfelse> <cfset success = false> </cfif> </cfloop> <cfcatch> <!--- Close everything down ---> <cfif isDefined('channel')> <cftry> <cfset channel.exit()> <cfset channel.disconnect()> <cfcatch> <cfset success = false> </cfcatch> </cftry> </cfif> <cfset SFTPSession.disconnect()> <cfset success = false> </cfcatch> </cftry> <cftry> <!--- Close everything down ---> <cfset channel.exit()> <cfset channel.disconnect()> <cfset SFTPSession.disconnect()> <cfcatch> </cfcatch> </cftry> <cfreturn success> </cffunction> On 7/4/07, Jim Rising <[EMAIL PROTECTED]> wrote: > Jake, > > You could probably write a CFC wrapper for this: > > http://www.jscape.com/sftp/index.html > > That's really all that sftp.cfc is... It's a wrapper for Java Secure > Channel: > > http://www.jcraft.com/jsch/ > > Jim Rising > Sr. Cold Fusion Developer > ICGLink Inc. > www.icglink.com > > > > > -----Original Message----- > From: Jake Pilgrim [mailto:[EMAIL PROTECTED] > Sent: Tuesday, July 03, 2007 11:36 AM > To: CF-Talk > Subject: FTPS > > Does anyone know of a way I can connect to an FTPS (FTP over SSL) > server using coldfusion? I have seen the sftp.cfc download out there, > but SFTP is a different protocol and this CFC doesn't seem to work. > > I would prefer a CFC/custom tag based solution, but I am able to run > cfexecute so a command line solution could potentially work. > > > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| Upgrade to Adobe ColdFusion MX7 The most significant release in over 10 years. Upgrade & see new features. http://www.adobe.com/products/coldfusion?sdid=RVJR Archive: http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:282942 Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4

