FTP Upload v0.2a

Platform:  mIRC
Published  Nov 21, 2011
Updated  Nov 21, 2011
Use: /sendfile <d(ialog)|c(ommand)> <address> <username> <password> <directory> <port>
For dialog-table: /sendfile d
For custom-window: /sendfile c <address> <username> <password> <directory> <port>
Custom-window sample: /sendfile c mircscripting.net username my_password /www 21

Note(for custom-window): To cancel the installation, press Puase/Break key.


For dialog-table picture:



For custom-window picture:

;--------------------------------------------------------------------------------------
;FTP upload v0.2a
;l4roxyl code series - 2011,,.
;date: 20/11/2011
;use: /sendfile <d(ialog)|c(ommand)> <address> <username> <password> <directory> <port>
;--------------------------------------------------------------------------------------
;started code
alias -l _input $iif($input($1-,wo,Hata) = $true,,) | dialog -v ftp_ | halt
alias _did $iif($dialog(ftp_),did -ra ftp_ 15,$iif($window(@ftp_upload),aline -c2 $v1 +++)) $1-
alias _len if ($len($1-) >= 20) { return $left($1-,20) $+ .. } | else return $1-
alias _did2 if ($dialog(ftp_)) did - $+ $1 ftp_ 5-9,13,14
alias _file_byte {
var %_. = $file($1).size
if (%_. < 1048576) return 9182
if (%_. > 1048576 && %_. < 3145728) return 18364
if (%_. > 3145728) return 55092
}
on *:keydown:@ftp_upload:*: {
if ($keyval = 19) {
$iif($sock(ftp),sockclose ftp)
$iif($sock(ftp2),sockclose ftp2)
$iif($hget(_ftp),hfree _ftp)
unset %_sfile
window -c $target
}
}
on *:load: {
var %e = echo -ac info +++
%e FTP Upload v0.2a is loaded.
%e Use: /sendfile <d(ialog)|c(ommand)> <address> <username> <password> <directory> <port>
%e For dialog: /sendfile d
%e For window: /sendfile c <address> <username> <password> <directory> <port>
%e Sample window: /sendfile c mircscripting.net username my_password /public_ftp 21
linesep
%e l4roxyl(Hasan AYDENİZ) - http://www.mIRCScripting.net - 20/11/2011
}
on *:close:@ftp_upload: {
$iif($sock(ftp),sockclose ftp)
$iif($sock(ftp2),sockclose ftp2)
$iif($hget(_ftp),hfree _ftp)
unset %_sfile
}
menu status,menubar {
FTP Upload v0.2a
.Run: if ($dialog(ftp_)) return | sendfile d
.About:echo -aec info +++ l4roxyl(Hasan AYDENİZ) - http://www.mircscripting.net - 20/11/2011
}
dialog -l ftp_ {
title "FTP Upload"
size -1 -1 94 117
option dbu
text "FTP Address:", 1, 5 7 34 8
text "Username:", 2, 5 17 34 8
text "Password:", 3, 5 27 34 8
text "Port(21):", 4, 5 37 34 8
edit "", 5, 41 6 50 10, autohs
edit "", 6, 41 16 50 10
edit "", 7, 41 26 50 10, pass
edit "", 8, 41 36 50 10
button "Select Send File", 9, 4 47 86 10, flat
text "", 10, 4 60 86 8, center
text "Directory:", 12, 5 71 34 8
edit "", 13, 41 70 50 10
button "Upload", 14, 4 82 86 10, flat
text "", 15, 4 106 86 8, center
button "Cancel", 16, 4 94 86 10, flat
}
alias sendfile {
if (!$1) {
echo -aec info +++ Err: /sendfile <d(ialog)|c(ommand)> <address> <username> <password> [port]
return
}
if ($sock(ftp)) sockclose ftp
if ($sock(ftp2)) sockclose ftp2
if ($1 = d) $iif(!$dialog(ftp_),dialog -mdi ftp_ ftp_,_input Dialog zaten açık.)
if ($1 = c) {
if (!$6) {
$iif($dialog(_ftp),dialog -c _ftp)
echo -aec info +++ Err: /sendfile <d(ialog)|c(ommand)> <address> <username> <password> <directory> <port>
return
}
$iif(!$window(@ftp_upload),window -aCldk0 +l @ftp_upload -1 -1 300 300)
$iif($window(@ftp_upload),clear $v1)
$iif($dialog(ftp_),dialog -c $v1 $v1)
%_sfile = $sfile($mircdir,Select send file,Accept)
if (!%_sfile) {
if ($window(@ftp_upload)) aline -c2 @ftp_upload File not selected.
return
}
else {
sockopen ftp $2 $iif($6,$6,21)
var %_h = hadd -m _ftp
%_h _user $3
%_h _pass $4
%_h _file $shortfn(%_sfile)
%_h dir $iif($5,$5,/)
}
}
}
on *:dialog:ftp_:*:*: {
if ($devent = close) {
$iif($sock(ftp),sockclose ftp)
$iif($sock(ftp2),sockclose ftp2)
$iif($hget(_ftp),hfree _ftp)
unset %_sfile
}
if ($devent = init) {
$iif($window(@ftp_upload),window -c $v1)
did -a $dname 10 File not selected.
did -a $dname 15 Status: No transfer.
did -a $dname 8 21
}
if ($devent = sclick) {
if ($did = 16) {
$iif($sock(ftp),sockclose ftp)
$iif($sock(ftp2),sockclose ftp2)
$iif($hget(_ftp),hfree _ftp)
_did2 b
dialog -c ftp_ ftp_
}
if ($did = 9) {
%_sfile = $sfile($mircdir,Select send file,Accept)
if (!%_sfile) {
did -a $dname 10 File not selected.
return
}
else did -ra $dname 10 File: $_len($nopath(%_sfile))
}
if ($did = 14) {
if (!$did($dname,5)) _input Enter address. $crlf $+ Örnek: mircscripting.net
if (!$did($dname,6)) _input Enter username.
if (!$did($dname,7)) _input Enter password.
if (!$did($dname,8)) {
hadd -m _ftp port 21
did -a $dname 8 21
}
else {
if ($did($dname,8) !isnum) _input Port consists of only digits. $crlf $+ Sample: for FTP 21
}
if (!$did($dname,13)) _input Select the directory. $crlf $+ Sample: /www - /public_ftp - The main index: /
if (!%_sfile) _input Select send file.
if (%_sfile && $did($dname,5) && $did($dname,6) && $did($dname,7) && $did($dname,8) && $did($dname,13)) {
$iif($sock(ftp),sockclose ftp)
$iif($sock(ftp2),sockclose ftp2)
$iif($hget(_ftp),hfree _ftp)
hadd -m _ftp _file $shortfn(%_sfile)
hadd -m _ftp address $did($dname,5)
hadd -m _ftp _user $did($dname,6)
hadd -m _ftp _pass $did($dname,7)
hadd -m _ftp port $did($dname,8)
hadd -m _ftp dir $did($dname,13)
sockopen ftp $hget(_ftp,address) $iif($hget(_ftp,port),$v1,21)
did -ra $dname 15 Status: Connecting..
_did2 b
}
}
}
}
on *:sockopen:ftp: {
if ($sockerr) {
_did Status: Connection failed.
_did2 e
return
}
}
on *:sockread:ftp: {
if ($sockerr) {
_did2 e
_did Connection failed.
return
}
sockread %_data
while ($sockbr) {
var %_raw = $token(%_data,1,32)
if (%_raw = 220) {
sockwrite -n $sockname user $hget(_ftp,_user)
_did User name is entered.
}
if (%_raw = 331) {
sockwrite -n $sockname pass $hget(_ftp,_pass)
_did Pass entered, wait..
}
if (%_raw = 230) {
sockwrite -n $sockname TYPE I
_did Connection confirmed.
}
if (%_raw = 200) sockwrite -n $sockname PASV
if (%_raw = 227) {
_did Passive mode ok.
var %s = $remove($token(%_data,-1,32),$chr(40),$chr(41))
var %port = $token(%_data,5,44), %port2 = $token(%_data,6,44)
var %port3 = $calc((%port * 2^8) + %port2)
var %s = $replace($token(%s,1-4,44),$chr(44),$chr(46))
sockopen ftp2 %s %port3
sockwrite -n $sockname CWD $iif($hget(_ftp,dir),$v1,/)
}
if (%_raw = 250) {
sockwrite -n $sockname STOR $nopath($longfn($hget(_ftp,_file)))
_did Directory: $token(%_data,-1,32)
if ($window(@ftp_upload)) {
aline -c2 $v1 +++ File: $_len($nopath(%_sfile)) / $bytes($file(%_sfile).size).suf
}
}
if (%_raw = 150) {
_did Data transmission was accepted.
%=t = $ctime
var %_pos = 0, %file = $hget(_ftp,_file)
bread %file %_pos $_file_byte(%file) &_file
sockwrite ftp2 &_file
hadd -m pos pos $calc(%pos + $bvar(&_file,0))
}
if (%_raw = 530) {
_did Authentication failed.
_did2 e
.timer 1 2 _did Disconnections.
}
if (%_raw = 226) {
_did Files uploaded.
_did Upload time: $duration($calc($ctime - %=t),3)
_did2 e
$iif($hget(_ftp),hfree $v1)
}
if (%_raw = 221) .timer 1 2 _did Output was.
sockread %_data
}
if (%_raw = 550) {
_did Directory not found.
_did2 e
$iif($sock(ftp),sockclose ftp)
$iif($sock(ftp2),sockclose ftp2)
_did Disconnection.
}
}
on *:sockwrite:ftp2:{
if ($sockerr) {
_did Transfer the problem.
_did2 e
return
}
var %_pos = $hget(pos,pos), %_file = $hget(_ftp,_file)
var %_p1 = $+(%,$round($calc((%_pos * 100)/ $file(%_file).size),1))
var %_s = $bytes(%_pos,3).suf / $bytes($file(%_file).size,3).suf
if ($dialog(ftp_)) did -ra ftp_ 15 Load.. ( $+ %_p1 $+ ) - %_s
if ($window(@ftp_upload)) {
var %l = $line($v1,0) - 1
rline -c2 $v1 $calc(%l +1) ++++ Load.. ( $+ %_p1 $+ ) - %_s
}
if (%_pos < $file(%_file).size) {
bread %_file %_pos $_file_byte(%_file) &_file
sockwrite $sockname &_file
hadd -m pos pos $calc(%_pos + $bvar(&_file,0))
}
else {
sockclose $sockname
sockwrite -n ftp QUIT
}
}

Comments

Sign in to comment.
Skywalker   -  Sep 14, 2012
is there any development for uploading folders with this script?
 Respond  
L4roXyL   -  Nov 30, 2011
No. But later versions add.
 Respond  
Skywalker   -  Nov 28, 2011
can this be made so it can also upload a dir to the server?
 Respond  
MashhitDK   -  Nov 21, 2011
Not tested... but niiiice ooO( Much appreciated )
 Respond  
WingmaN   -  Nov 21, 2011
This is such an usefull addon, thanks for sharing it, it's also can be usefull data-exchanges anyway.
well done.
 Respond  
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.