Sign in to follow this  
Followers 0
GotX

ftp function problems

9 posts in this topic

#1 ·  Posted (edited)

Im a bit of a noob when It comes to AutoIt so bear with me... I was writing a section of code to transmit a file to my ftp server, but no matter what I did I kept coming across problems and I cant figure it out. Below is the section of code and below that a the FTP functions i used. I'm getting an error with the _FTPPutFile function that i cannot figure out for the life of me. Anyway here it is:

#include <FTP.au3>

$file = 'C:\folderpath\' & @ComputerName & '_' & @MON & '_' & @MDAY & '.html' ; this already exists
$ftpfile = '/Files/' & @ComputerName & '_' & @MON & '_' & @MDAY & '.html'
$server = 'ftp.drivehq.com'
$username = 'MyUsername'
$pass = 'MyPass'

$handle = _FTPOpen('myftp')
 If @error Then
    MsgBox(0,'FTPOpen Error', @error)
 EndIf
$ftpc = _FTPConnect($handle, $server, $username, $pass)
 If @error Then
    MsgBox(0,'FTPConnect Error', @error)
 EndIf
 ;the code works up till this point
$ftpp = _FtpPutFile($handle, $file, $ftpfile)
 If @error Then
    MsgBox(0,'FTPPut Error', @error) ;this is where i get an error message
 EndIf
_FTPClose($handle)oÝ÷ Ù«­¢+Øìôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôô(ì(ìչѥ½¸9µè}QA=Á¸ ¤(ìÍÉ¥ÁÑ¥½¸è=Á¹Ì¸Q@ÍÍÍ¥½¸¸(ìAɵÑȡ̤èÀÌØíÍ}¹Ð$´I¹½´¹µ¸ ±¥­ÅÕ½ÐíµåÑÀÅÕ½Ðì¤(ìÀÌØí±}ÍÍQåÁ$´$½¹Ð½Ð±ÕÝ¡ÐÑ¡¥Ì½Ì¸(ìÀÌØíÍ}Aɽáå9µ$´Aɽáå9µ¸(ìÀÌØíÍ}Aɽáå  åÁÍÌ$´Aɽáå    åAÍÍÌÌäí̸(ìÀÌØí±}±Ì$´MÁ¥°±Ì¸(ìIÅեɵ¹Ð¡Ì¤èÝ¥¹¥¹Ð¹±°(ìIÑÕɸY±Õ¡Ì¤è=¸MÕÍÌ´IÑÕɹ̸¥¹¹Ñ¥¥È¸(ì=¸¥±ÕÉ´À¹ÍÑÌII=H(ìÕÑ¡½È¡Ì¤è]½ÕÑÈÙ¸-ÍÑɸ¸(ì(ìôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôô()Õ¹}QA=Á¸ ÀÌØíÍ}¹Ð°ÀÌØí±}ÍÍQåÁôÄ°ÀÌØíÍ}Aɽáå9µôÌäìÌäì°ÀÌØíÍ}Aɽáå åÁÍÌôÌäìÌäì°ÀÌØí±}±ÌôÀ¤($(%±½°ÀÌØí¡¹±ÍlÙt($ÀÌØí¡¹±ÍlÅtõ±±=Á¸ ÅÕ½ÐíÝ¥¹¥¹Ð¹±°ÅÕ½Ðì¤($(%1½°ÀÌØí¥}%¹ÑɹÑ=Á¸ô±±
±° ÀÌØí¡¹±ÍlÅt°Ìäí±½¹Ìäì°Ìäí%¹ÑɹÑ=Á¸Ìäì°ÌäíÍÑÈÌäì°ÀÌØíÍ}¹Ð°Ìäí±½¹Ìäì°ÀÌØí±}ÍÍQåÁ°ÌäíÍÑÈÌäì°ÀÌØíÍ}Aɽáå9µ°ÌäíÍÑÈÌäì°ÀÌØíÍ}Aɽáå   åÁÍÌ°Ìäí±½¹Ìäì°ÀÌØí±}±Ì¤(%%ÉɽÈ=HÀÌØí¥}%¹ÑɹÑ=Á¹lÁtôÀQ¡¸($%MÑÉÉ½È ´Ä¤($%IÑÕɸÀ(%¹%($($ÀÌØí¡¹±ÍlÉtôÀÌØí¥}%¹ÑɹÑ=Á¹lÁt($(%IÑÕɸÀÌØí¡¹±Ì($)¹Õ¹ìôôÐì}QA=Á¸ ¤((ìôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôô(ì(ìչѥ½¸9µè}QA
½¹¹Ð ¤(ìÍÉ¥ÁÑ¥½¸è
½¹¹ÑÌѼ¸Q@ÍÉÙȸ(ìAɵÑȡ̤èÀÌØí±}%¹ÑɹÑMÍÍ¥½¸$´ÉÉäɽ´}QA=Á¸ ¤(ìÀÌØíÍ}MÉÙÉ9µ$$´MÉÙȹµ½¥À¸(ìÀÌØíÍ}UÍɹµ$$´UÍɹµ¸(ìÀÌØíÍ}AÍÍݽÉ$$$´AÍÍݽɸ(ìÀÌØí¥}MÉÙÉA½ÉÐ$$´MÉÙÈÁ½ÉÐ À¥ÌձРÈĤ¤(ì$$$$$ÀÌØí±}MÉÙ¥$$$´$½¹Ð½Ð±ÕÝ¡ÐÑ¡¥Ì½Ì¸(ì$$$$$ÀÌØí±}±Ì$$$´MÁ¥°±Ì¸(ì$$$$$ÀÌØí±}
½¹ÑáÐ$$$´$½¹Ð½Ð±ÕÝ¡ÐÑ¡¥Ì½Ì¸(ìIÅեɵ¹Ð¡Ì¤èÝ¥¹¥¹Ð¹±°(ìIÑÕɸY±Õ¡Ì¤è=¸MÕÍ̴ĸ(ì=¸¥±ÕÉ´À¹ÍÑÌII=H(ìÕÑ¡½È¡Ì¤è]½ÕÑÈÙ¸-ÍÑɸ(ì(ìôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôô()Õ¹}QA
½¹¹Ð¡  åIÀÌØí±}%¹ÑɹÑMÍÍ¥½¸°ÀÌØíÍ}MÉÙÉ9µ°ÀÌØíÍ}UÍɹµ°ÀÌØíÍ}AÍÍݽɰÀÌØí¥}MÉÙÉA½ÉÐôÈÄ°ÀÌØí±}MÉÙ¥ôÄ°ÀÌØí±}±ÌôÀ°ÀÌØí±}
½¹ÑáÐôÀ¤((%1½°ÀÌØí¥}%¹ÑɹÑ
½¹¹Ðô±±
±° ÀÌØí±}%¹ÑɹÑMÍÍ¥½¹lÅt°Ìäí±½¹Ìäì°Ìäí%¹ÑɹÑ
½¹¹ÐÌäì°Ìäí±½¹Ìäì°ÀÌØí±}%¹ÑɹÑMÍÍ¥½¹lÉt°ÌäíÍÑÈÌäì°ÀÌØíÍ}MÉÙÉ9µ°Ìäí¥¹ÐÌäì°ÀÌØí¥}MÉÙÉA½ÉаÌäíÍÑÈÌäì°ÀÌØíÍ}UÍɹµ°ÌäíÍÑÈÌäì°ÀÌØíÍ}AÍÍݽɰÌäí±½¹Ìäì°ÀÌØí±}MÉÙ¥°Ìäí±½¹Ìäì°ÀÌØí±}±Ì°Ìäí±½¹Ìäì°ÀÌØí±}
½¹ÑáФ(%%ÉɽÈ=HÀÌØí¥}%¹ÑɹÑ
½¹¹ÑlÁtôÀQ¡¸($%MÑÉÉ½È ´Ä¤($%IÑÕɸÀ(%¹%($($ÀÌØí±}%¹ÑɹÑMÍÍ¥½¹lÍtôÀÌØí¥}%¹ÑɹÑ
½¹¹ÑlÁt($$$(%IÑÕɸÄ($)¹Õ¹ìôôÐì}QA
½¹¹Ð ¤((ìôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôô(ì(ìչѥ½¸9µè}QAAÕÑ¥± ¤(ìÍÉ¥ÁÑ¥½¸èAÕÑ̸¥±½¸¸Q@ÍÉÙȸ(ìAɵÑȡ̤èÀÌØí±}QAMÍÍ¥½¸´ÉÉäɽ´}QA=Á¸ ¤(ìÀÌØíÍ}1½±¥±$´Q¡±½°¥±¸(ìÀÌØíÍ}Iµ½Ñ¥±$´Q¡Éµ½Ñ1½Ñ¥½¸½ÈÑ¡¥±¸(ìÀÌØí±}±Ì$$´MÁ¥°±Ì¸(ìÀÌØí±}
½¹ÑáÐ$´$½¹Ð½Ð±ÕÝ¡ÐÑ¡¥Ì½Ì¸(ìIÅեɵ¹Ð¡Ì¤è±±
±°°Ý¥¹¥¹Ð¹±°(ìIÑÕɸY±Õ¡Ì¤è=¸MÕÍÌ´Ä(ì=¸¥±ÕÉ´À(ìÕÑ¡½È¡Ì¤è]½ÕÑÈÙ¸-ÍÑɸ(ì(ìôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôô()Õ¹}QAAÕÑ¥±¡    åIÀÌØí±}QAMÍÍ¥½¸°ÀÌØíÍ}1½±¥±°ÀÌØíÍ}Iµ½Ñ¥±°ÀÌØí±}±ÌôÀ°ÀÌØí±}
½¹ÑáÐôÀ¤((%1½°ÀÌØí¥}QAAÕÑ¥±ô±±
±° ÀÌØí±}QAMÍÍ¥½¹lÅt°Ìäí¥¹ÐÌäì°ÌäíÑÁAÕÑ¥±Ìäì°Ìäí±½¹Ìäì°ÀÌØí±}QAMÍÍ¥½¹lÍt°ÌäíÍÑÈÌäì°ÀÌØíÍ}1½±¥±°ÌäíÍÑÈÌäì°ÀÌØíÍ}Iµ½Ñ¥±°Ìäí±½¹Ìäì°ÀÌØí±}±Ì°Ìäí±½¹Ìäì°ÀÌØí±}
½¹ÑáФ(%%ÉɽÈ=HÀÌØí¥}QAAÕÑ¥±lÁtôÀQ¡¸($%MÑÉÉ½È ´Ä¤($%IÑÕɸÀ(%¹%($(%IÑÕɸÀÌØí¥}QAAÕÑ¥±lÁt($)¹Õ¹ìôôÐì}QAAÕÑ¥±

Any amount of help would be greatly appriciated. Thanks in advance.

If it makes any difference my AutoIt verson is: 3.2.12.1

Edited by GotX

Share this post


Link to post
Share on other sites



Also in case you need this here's some example script for those functions that the guy made.

#include <FTP.au3>
#include <Array.au3>;only used for this test file to dispay the return value of the ftpfilefind function

$server = 'ftp.teammc.cc'
$username = 'scripting@teammc.cc'
$pass = ''
;$Hand will be a handle in the form of an array containing multiple handles and information, and is the only handle referenced
$Hand = _FTPOpen('Doesnt Matter')
;In place of returning the "new" connect handle _FTPConnect like any other function will update the handle array already in use
;the return value will be as with any other function, 1 on success and 0 on failure
$Ftpc = _FTPConnect($Hand, $server, $username, $pass)
    if @error then 
        msgbox(0,"Error","Connect Error")
        Exit
    EndIf   
$Ftpp = _FtpPutFile($Hand, 'C:\WINDOWS\Notepad.exe', '/Example1.exe')
$Ftpp = _FtpPutFile($Hand, 'C:\WINDOWS\Notepad.exe', '/Example2.exe')
$Ftpc = _FTPClose($Hand);Close ftp session

Share this post


Link to post
Share on other sites

Any1? I've spent hours trying to fix it and i could really use some help.

Thanks

Share this post


Link to post
Share on other sites

Hi GotX,

1st Welcome to the AutoIt Forums! :idiot:

Some of the following tips may not apply to you, but it may make your life a bit easier here on the forum in the future.

CODE
  • Did you know that we have an awesome search feature?

    You can find many answers to your current questions, just by typing in the right search patterns.

  • A suggestion is to use the Advanced Search mode:

  • Type your specific search term in quotes.
  • Click the forum you want to search in (the one most likely to have your information would generally be the Example Script forum and or the General Help and Support Forum).
  • Click on "Search titles only" radio button.
  • Click perform search.
The above will help you narrow down your searches and prevent you from unneccesarily posting a new thread.

[*]Also, you should try to read the Sticky posts that are at the top of each of the AutoIt Forums you enter such as:

[*]Keep in mind, the help file will be your best friend, however you may find some of the tutorials written by some of our elite forum members helpful.

[*]Forum Etiquette:

  • Making a new thread:

    • Use the Search feature first to see if your question has already been answered.
    • Look in the help file as well before even thinking of posting (When what you want could be obtained by simply reading the help file, you don't generally get a good response from your AutoIt community).
    • Titles are very important here. 1 word titles or titles like "help me", "write something for me", "I'm a noob" etc... aren't tolerated.
    • Make sure you are posting in the correct forum:

      • General Help and Support:

        • This forum is for AutoIt related support questions only. If you have a question related to another language, or nothing at all to do with AutoIt then you need to post in the chat forum, or in that languages perspective forum.
      • Example Script:

        • This forum is for AutoIt scripts/executables only.
        • Source code is preferred but not necessary, you do have the right to just post the binary of your project if you wish.
        • Please don't post questions in this forum unless it's directly related to a thread already existing.
    • Use common sense when creating a new thread.

      Ask yourself if the title is descriptive enough to even interest someone (preferably those that know what they are talking about) to even look at your thread, let alone reply in it.

    • Think about how it would show in the search feature if someone were to look for something just like you are looking for (think of the keywords you used yourself and obviously didn't find anything (because we know you used the search feature :) ) and use those types of keywords in your title as well).
  • Thread content:

    • Be descriptive with your query. (Make sure we actually know what you want to do).
    • Show you've made an effort in coding what you want (provide the reproducer code (generally no more than 50 lines as people lose interest in debugging someones script for free)).
    • Don't talk in ebonics. A lot of the forum members are adults, and a lot of them know how to help you, but talk like a child, you'll be treated as such.
    • Don't ask for help making keyloggers, spam (even if it's to do as a prank), or anything that can be thought of as malicious. You'll more than likely have the thread locked by a moderator, and take a bashing from your fellow AutoIt community.
    • When posting code, use code boxes. This can be accomplished by using [code ]<content here>[/code ] (No spaces between the brackets []).

      Using code boxes will keep the indentation and make it easier to read for others to help you.

  • Bumping your threads:

    • Use common courtesy here.

      Keep in mind every time you bump your thread to the top of the forum, you knock the other threads down a notch.

      Everyone posting for help has just as much right for their threads to get read as you do.

      Because of that, do not bump your post more than once in a 24 hour period.

      A Bump is simply posting in your thread with nothing that pertains to your query with the sole purpose of moving it up.

      Deleting previous bumps, and posting new ones is not tolerated, and the moderators can find those deletions, so do yourself a favor and don't cross that line >_< .

  • Rude or obnoxious content:

    This falls pretty much under the common sense thing. If you use it (common sense) before posting, you won't have issues.

    • Don't use foul language, remember, a lot of the community is at work when they read these threads.
    • Don't provoke or instigate an argument with someone.
  • Double Posting:

    • It's understood that sometimes there's a lag in the system, and sometimes people don't see their post go up right aways so they post again.

      If this happens to you, simply notify a moderator with the report feature in the post, and politely ask them to delete it.

    • If you're just creating another topic because your original topic is not being answered the way you want or at all, this is not tolerated. You could lose your posting privileges all together over it.
  • Non-English languages

    • If English is not your primary language, please make an attempt to interpret (yourself or online) and post that interpretation.

      We have wonderful users from around the world, so after you've done your post in English, back it up with your question also in your native tongue (You may find your answer much quicker using both).

That's it for now, I hope you have a wonderful learning experience, and hope to see you contribute to the community as your knowledge grows.

Share this post


Link to post
Share on other sites

Also in case you need this here's some example script for those functions that the guy made.

#include <FTP.au3>
#include <Array.au3>;only used for this test file to dispay the return value of the ftpfilefind function

$server = 'ftp.teammc.cc'
$username = 'scripting@teammc.cc'
$pass = ''
;$Hand will be a handle in the form of an array containing multiple handles and information, and is the only handle referenced
$Hand = _FTPOpen('Doesnt Matter')
;In place of returning the "new" connect handle _FTPConnect like any other function will update the handle array already in use
;the return value will be as with any other function, 1 on success and 0 on failure
$Ftpc = _FTPConnect($Hand, $server, $username, $pass)
    if @error then 
        msgbox(0,"Error","Connect Error")
        Exit
    EndIf   
$Ftpp = _FtpPutFile($Hand, 'C:\WINDOWS\Notepad.exe', '/Example1.exe')
$Ftpp = _FtpPutFile($Hand, 'C:\WINDOWS\Notepad.exe', '/Example2.exe')
$Ftpc = _FTPClose($Hand);Close ftp session
Before you use any _FTP functions

$hDll = DllOpen("Wininet.dll")

and when you've finished with the _ftp functions

DllClose($hDll)

Serial port communications UDF Includes functions for binary transmission and reception.printing UDF Useful for graphs, forms, labels, reports etc.Add User Call Tips to SciTE for functions in UDFs not included with AutoIt and for your own scripts.Functions with parameters in OnEvent mode and for Hot Keys One function replaces GuiSetOnEvent, GuiCtrlSetOnEvent and HotKeySet.UDF IsConnected2 for notification of status of connected state of many urls or IPs, without slowing the script.

Share this post


Link to post
Share on other sites

Before you use any _FTP functions

$hDll = DllOpen("Wininet.dll")

and when you've finished with the _ftp functions

DllClose($hDll)
The _FTPOpen opens the wininet.dll automatically so I don't have to worry about that.

Share this post


Link to post
Share on other sites

The _FTPOpen opens the wininet.dll automatically so I don't have to worry about that.

Oh sorry, I am used to using a different ftp udf.

I tried your script using the udf you posted. I substituted my details of course and I uploaded a file without any errors. I couldn't use the _FTPClose function because that is missing from your post.

So there must be something wrong with the path you are giving or the password or something else. Add some more error checking. Make sure that $file really exists for example.


Serial port communications UDF Includes functions for binary transmission and reception.printing UDF Useful for graphs, forms, labels, reports etc.Add User Call Tips to SciTE for functions in UDFs not included with AutoIt and for your own scripts.Functions with parameters in OnEvent mode and for Hot Keys One function replaces GuiSetOnEvent, GuiCtrlSetOnEvent and HotKeySet.UDF IsConnected2 for notification of status of connected state of many urls or IPs, without slowing the script.

Share this post


Link to post
Share on other sites

#8 ·  Posted (edited)

Oh sorry, I am used to using a different ftp udf.

I tried your script using the udf you posted. I substituted my details of course and I uploaded a file without any errors. I couldn't use the _FTPClose function because that is missing from your post.

So there must be something wrong with the path you are giving or the password or something else. Add some more error checking. Make sure that $file really exists for example.

Well i know for sure that the file will always exist because the program creates it but i didn't show that section. I've tried numerous other _FTP udfs and none of them worked for me. Wonder if it could be the server? I'll see if I can get another server.

Edited by GotX

Share this post


Link to post
Share on other sites

#9 ·  Posted (edited)

Ok i tried another server but to no avail. :) Could it be a problem with my firewall even though it connects properly?

Edited by GotX

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0