rmorrow Posted August 16, 2005 Posted August 16, 2005 I really like the idea of searching an FTP site... FtpOpenFile supports: FtpFindFirstFile FtpFindNextFile What are the possibilites of FXP using the wininet.dll functions instead of AutoIt's built-in FTP functions? I'm looking for the passive mode FTP stuff in MSDN, but haven't found it yet. What about using the FtpOpenFile for reads and writes? It appears to provide "live" writing to a file versus creating a temp file and uploading it.
w0uter Posted August 16, 2005 Author Posted August 16, 2005 I really like the idea of searching an FTP site...will do ... later.What are the possibilites of FXP using the wininet.dll functions instead of AutoIt's built-in FTP functions?what do you mean ? autoit doesnt even have build in ftp functions.What about using the FtpOpenFile for reads and writes? It appears to provide "live" writing to a file versus creating a temp file and uploading it.maby later. My UDF's:;mem stuff_Mem;ftp stuff_FTP ( OLD );inet stuff_INetGetSource ( OLD )_INetGetImage _INetBrowse ( Collection )_EncodeUrl_NetStat_Google;random stuff_iPixelSearch_DiceRoll
APRES Posted August 27, 2005 Posted August 27, 2005 (edited) Maybe it is an idea to add the possibility to take over the proxy properties from HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings Edited August 27, 2005 by APRES
w0uter Posted August 27, 2005 Author Posted August 27, 2005 (edited) AFAIK it automaticly detect's Settings if 0.[edit]0 = INTERNET_OPEN_TYPE_PRECONFIG = Retrieves the proxy or direct configuration from the registry.[/edit] Edited August 27, 2005 by w0uter My UDF's:;mem stuff_Mem;ftp stuff_FTP ( OLD );inet stuff_INetGetSource ( OLD )_INetGetImage _INetBrowse ( Collection )_EncodeUrl_NetStat_Google;random stuff_iPixelSearch_DiceRoll
APRES Posted August 29, 2005 Posted August 29, 2005 Still don't get it. Tried to doi that way: ftp.au3 : RunWait(@ComSpec & " /c " & "ftp -s:c:\ftp.txt", "", @SW_HIDE) ftp.txt : open myhost.com username password put c:\mydir\myfile path_on_server/myfile put c:\mydir\myfile path_on_server/myfile close bye When I run ftp -s:c:\ftp.txt from command line - everything works. When I run the above au3 script with one string there - weird things happens: Icon of AutoIt begins to multiply and computer runs out of memory. Why????
w0uter Posted August 29, 2005 Author Posted August 29, 2005 silly question. but, are you talking about the old version ? if so you should really try the new version. My UDF's:;mem stuff_Mem;ftp stuff_FTP ( OLD );inet stuff_INetGetSource ( OLD )_INetGetImage _INetBrowse ( Collection )_EncodeUrl_NetStat_Google;random stuff_iPixelSearch_DiceRoll
APRES Posted August 29, 2005 Posted August 29, 2005 silly question. but, are you talking about the old version ?if so you should really try the new version.<{POST_SNAPBACK}>Sorry, w0uterI got to the wrong topic. In the last example I haven't use your function.Just RunWait command and windows command line stuff.When I used your function I could see the following ( I try to upload 2 files permanently with very short breaks): one file is OK and another with some temporary name pro-ftp... is not available from the web. Probably some proble of synchronization. But I really need that two ( or more files ) are being repeatedly uploaded and in the same time be available from the Internet.
theguy0000 Posted August 30, 2005 Posted August 30, 2005 this is a great script, i put it in my include directory The cake is a lie.www.theguy0000.com is currentlyUP images.theguy0000.com is currentlyUP all other *.theguy0000.com sites are DOWN
w0uter Posted August 30, 2005 Author Posted August 30, 2005 new release is coming soon (still working out a return system for the searching) after that ill go work on _FtpCommand My UDF's:;mem stuff_Mem;ftp stuff_FTP ( OLD );inet stuff_INetGetSource ( OLD )_INetGetImage _INetBrowse ( Collection )_EncodeUrl_NetStat_Google;random stuff_iPixelSearch_DiceRoll
dhack Posted September 2, 2005 Posted September 2, 2005 man.. many thanks.. i just had a client ask me for a basic utility to upload a file via ftp. This knocked it out in no time. Many thanks,Damoni thought my old _FTPxxx.au3 sucked. so i tryd using STD for it. but it failed. googled a bit and came across an vb site that used a windows dll, then i headed over to msdn to find out how to use em.this is the (unfinished) result.i am still writing alot of docs for it. since i want it included standardly.but i got sick of it and just decided to get some feedback first.[edit]uploaded a new version. for reference the old one got dl'ed 88 times.[/edit][edit2]uploaded a new version.the other one wasnt even working. why didnt you guys say anything for reference the semi-old one got dl'ed 269 times.[/edit2]<{POST_SNAPBACK}>
Gigglestick Posted September 2, 2005 Posted September 2, 2005 (edited) EDIT: Nevermind... Edited September 2, 2005 by c0deWorm My UDFs: ExitCodes
nitro322 Posted September 6, 2005 Posted September 6, 2005 (edited) Thanks, w0uter, this is wonderful extension that will hopefully make it into the official AutoIt source given its usefulness. However, I was in a situation that required passive FTP rather than the default active, and was rather dismayed when I read that this capability doesn't yet exist.So, I started doing some research, and I was able to get passive FTP working as documented here:http://msdn.microsoft.com/library/default....rnetconnect.asphttp://msdn.microsoft.com/library/default....t/api_flags.aspBasically, I added another variable to _FTPConnect() to specifiy whether or not it should be passive. The new _FTPConnect() function is pasted below, as is an updated example. Right now this fourth argument is required, but I suspect it could be made optional so that, for example, it'll be active by default if the fourth argument isn't specified. Just wasn't able to get that working in my initial testing. I'm sure w0uter can figure this out if he chooses to add these modifications to his official extension.Thanks again. Here are my changesFTP.au3Func _FTPConnect($l_InternetSession, $s_ServerName, $s_Username, $s_Password, $i_Passive, $i_ServerPort = 0, $l_Service = 1, $l_Flags = 0, $l_Context = 0) If $i_Passive == 1 then $l_Flags = 0x08000000 Local $ai_InternetConnect = DllCall('wininet.dll', 'long', 'InternetConnect', 'long', $l_InternetSession, 'str', $s_ServerName, 'int', $i_ServerPort, 'str', $s_Username, 'str', $s_Password, 'long', $l_Service, 'long', $l_Flags, 'long', $l_Context) If @error OR $ai_InternetConnect[0] = 0 Then SetError(-1) Return 0 EndIf Return $ai_InternetConnect[0] EndFunc;==> _FTPConnect()FTP_Example.au3#include <FTP.au3> $server = 'ftp.server.com' $username = 'username' $pass = 'password' $uploaddir = '/incoming/' ; New passive flag ; 0 = active, 1 = passive $passive = 1 $Open = _FTPOpen('MyFTP Control') $Conn = _FTPConnect($Open, $server, $username, $pass, $passive) $Ftpp = _FtpPutFile($Conn, 'C:\WINNT\NOTEPAD.EXE', $uploaddir & 'notepad.exe') $Ftpc = _FTPClose($Open) Edited September 6, 2005 by nitro322 http://www.legroom.net/
w0uter Posted September 12, 2005 Author Posted September 12, 2005 instead of modding my function you could have called it with 0x08000000 as the $l_flags parameter My UDF's:;mem stuff_Mem;ftp stuff_FTP ( OLD );inet stuff_INetGetSource ( OLD )_INetGetImage _INetBrowse ( Collection )_EncodeUrl_NetStat_Google;random stuff_iPixelSearch_DiceRoll
sandyd Posted September 13, 2005 Posted September 13, 2005 Hi wOuter, maybe being stupid here, but is there no _FTPGet? ----[ SandyD ]---
w0uter Posted September 13, 2005 Author Posted September 13, 2005 inetget can be used for most ftp servers. but it will still be in the next version. My UDF's:;mem stuff_Mem;ftp stuff_FTP ( OLD );inet stuff_INetGetSource ( OLD )_INetGetImage _INetBrowse ( Collection )_EncodeUrl_NetStat_Google;random stuff_iPixelSearch_DiceRoll
Dickb Posted September 13, 2005 Posted September 13, 2005 Hi wOuter, maybe being stupid here, but is there no _FTPGet?<{POST_SNAPBACK}>Until w0ter releases his next version maybe you can use this:;=============================================================================== ; ; Function Name: _FTPGetFile() - db Test ; Description: Gets an file from an FTP server. ; Parameter(s): $l_FTPSession - The Long from _FTPConnect() ; $s_RemoteFile - The remote Location for the file. ; $s_LocalFile - The local file. ; $l_Flags - use the dwFlags parameter to specify ; - 1 for transferring the file in ASCII (Type A transfer method) or ; - 2 for transferring the file in Binary (Type I transfer method). ; $l_Fail - Allow local file to be overwritten if it exists ; - -1 Don't allow overwrite (default) ; - 0 Allow overwrite ; $l_Attributes - Attributes for local file ; $l_Context - lContext is used to identify the application context when using callbacks. Since were not using callbacks well pass 0. ; Requirement(s): DllCall, wininet.dll ; Return Value(s): On Success - 1 ; On Failure - 0 ; Author(s): Dick Bronsdijk ; ;=============================================================================== Func _FTPGetFile($l_FTPSession, $s_RemoteFile, $s_LocalFile, $l_Flags = 2, $l_Fail = -1, $l_Attributes = 0, $l_Context = 0) Local $ai_FTPGetFile = DllCall('wininet.dll', 'int', 'FtpGetFile', 'long', $l_FTPSession, 'str', $s_RemoteFile, 'str', $s_LocalFile, 'long', $l_Fail, 'long', $l_Attributes, 'long', $l_Flags, 'long', $l_Context) If @error OR $ai_FTPGetFile[0] = 0 Then SetError(-1) Return 0 EndIf Return $ai_FTPGetFile[0] EndFunc;==> _FTPGetFile()
nitro322 Posted September 14, 2005 Posted September 14, 2005 (edited) instead of modding my function you could have called it with 0x08000000 as the $l_flags parameter<{POST_SNAPBACK}>Well, yeah, but 0x08000000 isn't the easiest thing to remember. I figured just enabling a flag to tell AutoIt whether or not to use Passive FTP would be the easiest thing to do, especially if redistributing the code. Edited September 14, 2005 by nitro322 http://www.legroom.net/
blitzkrg Posted September 30, 2005 Posted September 30, 2005 can someone tell me how to get visual output from this UDF so i throw the FTP connect command and it connect, but how do i know it connect? since i cant see it? would there be a way to output this to some type of console screen? thanks!!
w0uter Posted September 30, 2005 Author Posted September 30, 2005 If @error OR $ai_InternetOpen[0] = 0 Then SetError(-1) Return 0 EndIf sets the @error macro to -1 at failure, so to check if a function has failed do something like this: _FtpOpen() If @error <> -1 then msgbox(0, '', 'failed') exit endIf msgbox(0, '', 'sucess') My UDF's:;mem stuff_Mem;ftp stuff_FTP ( OLD );inet stuff_INetGetSource ( OLD )_INetGetImage _INetBrowse ( Collection )_EncodeUrl_NetStat_Google;random stuff_iPixelSearch_DiceRoll
blitzkrg Posted October 3, 2005 Posted October 3, 2005 I cannot get this thing to work at all. i used the example script and modified the server, login and password stuff. but basically, i see it connecting, it then just dis-connects and doesnt transfer any files. i've tried this with 2 diff. ftp servers.. even when i take out the ftp disconnect command. it still does it. if i use a regular ftp client, everything works fine with both servers. i'd post code, but like i said, i'm just using the provided example to test with.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now