Jump to content
acrane76

Upload a file to a ftp server with random filenames

Recommended Posts

acrane76
Posted (edited)

Hello how i can upload a file to a ftp server every 5 minutes the same file , and every 5 minutes the file in the server ftp must create always a new file with a random name , for example FileName-ufcxe.7z FileName-tcxaw.7z FileName-atdtx.7z

#include <FTPEx.au3>


;Online Backup
$source = '"Test*"'          ;Source directory to backup
$7Zfile = "BackupsDirectoryFileName.7z"  ;Backup file name
$pw     = "-p12345 -mhe"                      ;7-Zip Password (7z file will be password protected with 12345)

FileDelete($7Zfile)
sleep(500)

;Change "C:Apps" to where 7-Zip is installed
Run("7zG a " & $7Zfile & "  " & $pw & " " & $source)

;Upload Backup to Server
ProcessWaitClose("7zG.exe")

$server   = 'ftp.test.com' ;FTP Server
$username = 'test'       ;FTP Username
$pass     = 'test'       ;FTP Password

$Open = _FTP_Open('MyFTP Control')
$Conn = _FTPConnect($Open, $server, $username, $pass,0,1,0x08000000)

 ;Hard drive source file and server directory (change to suit)
$Ftpp = _FtpPutFile($Conn,"BackupsDirectoryFileName.7z", '/FileName.7z' , 0x08000000)


Func _FTPConnect($l_InternetSession, $s_ServerName, $s_Username, $s_Password, $i_ServerPort = 0, $l_Service = 1, $l_Flags = 0, $l_Context = 0)

    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
Func _FtpPutFile($l_FTPSession, $s_LocalFile, $s_RemoteFile, $l_Flags = 0, $l_Context = 0)

    Local $ai_FTPPutFile = DllCall('wininet.dll', 'int', 'FtpPutFile', 'long', $l_FTPSession, 'str', $s_LocalFile, 'str', $s_RemoteFile, 'long', $l_Flags, 'long', $l_Context)
    If @error OR $ai_FTPPutFile[0] = 0 Then
        SetError(-1)
        Return 0
    EndIf

    Return $ai_FTPPutFile[0]

EndFunc

Edited by acrane76

Share this post


Link to post
Share on other sites
Bilgus

The random name seems like a waste

$Ftpp = _FtpPutFile($Conn, 'C:\program files\text.txt', '/public_html/text' & @MDAY & @MON & @YEAR & "-" & @HOUR & @ MIN & @SEC &'.txt')

How about appending date + time?

@MSEC Milliseconds value of clock. Range is 000 to 999. The update frequency of this value depends on the timer resolution of the hardware and may not update every millisecond. 
@SEC Seconds value of clock. Range is 00 to 59 
@MIN Minutes value of clock. Range is 00 to 59 
@HOUR Hours value of clock in 24-hour format. Range is 00 to 23 
@MDAY Current day of month. Range is 01 to 31 
@MON Current month. Range is 01 to 12 
@YEAR Current four-digit year 
@WDAY Numeric day of week. Range is 1 to 7 which corresponds to Sunday through Saturday. 
@YDAY Current day of year. Range is 001 to 366 (or 001 to 365 if not a leap year)

 

Share this post


Link to post
Share on other sites
acrane76
Posted (edited)

The random name seems like a waste

$Ftpp = _FtpPutFile($Conn, 'C:\program files\text.txt', '/public_html/text' & @MDAY & @MON & @YEAR & "-" & @HOUR & @ MIN & @SEC &'.txt')

How about appending date + time?

@MSEC Milliseconds value of clock. Range is 000 to 999. The update frequency of this value depends on the timer resolution of the hardware and may not update every millisecond. 
@SEC Seconds value of clock. Range is 00 to 59 
@MIN Minutes value of clock. Range is 00 to 59 
@HOUR Hours value of clock in 24-hour format. Range is 00 to 23 
@MDAY Current day of month. Range is 01 to 31 
@MON Current month. Range is 01 to 12 
@YEAR Current four-digit year 
@WDAY Numeric day of week. Range is 1 to 7 which corresponds to Sunday through Saturday. 
@YDAY Current day of year. Range is 001 to 366 (or 001 to 365 if not a leap year)

 

this for me does not work ,  i get a error when i try to compile the autoit script to a exe

Edited by acrane76

Share this post


Link to post
Share on other sites
acrane76
16 hours ago, Bilgus said:
$Ftpp = _FtpPutFile($Conn, 'C:\program files\text.txt', '/public_html/text' & @MDAY & @MON & @YEAR & "-" & @HOUR & @ MIN & @SEC &'.txt')

this does not work

Share this post


Link to post
Share on other sites
Bilgus

this is valid autoit 

$FileSuffix = @MDAY & @MON & @YEAR & "-" & @HOUR & @MIN & @SEC
 ;Hard drive source file and server directory (change to suit)
$Ftpp = _FtpPutFile($Conn,"BackupsDirectoryFileName.7z", '/FileName' & $FileSuffix & '.7z' , 0x08000000)

What doesn't work?

Share this post


Link to post
Share on other sites
acrane76
Posted (edited)
44 minutes ago, Bilgus said:

this is valid autoit 

$FileSuffix = @MDAY & @MON & @YEAR & "-" & @HOUR & @MIN & @SEC
 ;Hard drive source file and server directory (change to suit)
$Ftpp = _FtpPutFile($Conn,"BackupsDirectoryFileName.7z", '/FileName' & $FileSuffix & '.7z' , 0x08000000)

What doesn't work?

now works thanks

Edited by acrane76

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

×