小凯 发表于 2008-12-10 06:01:39

FTP上传文件

本人头脑转的比较慢,帮忙看了半天也没看出个1 2 3来,所以想把这个问题发到论坛上来问下。
我想把1.EXE这个文件上传到FTP的空间中,要怎么写? FTP账号密码为 admin 1234
在此先谢谢各位大虾。

[ 本帖最后由 小凯 于 2008-12-17 20:50 编辑 ]

gaofali258 发表于 2008-12-10 13:49:37

http://www.autoitx.com/forum.php?mod=viewthread&tid=358&highlight=ftp

jtzxgfy 发表于 2008-12-13 09:17:11

我也想知道FTP上传一个文件的代码.
楼上的太复杂

gaofali258 发表于 2008-12-13 11:32:17

哪个就是FTP上传下载的代码呀,你要是只要上传功能就把有关上传的那部分应用了就可以了呀`!?我不知道还有什么问题

小凯 发表于 2008-12-13 23:02:43

:face (18):
哎 看了半天还是没看懂到底是哪段代码。哪个看懂了的发下FTP上传的代码。
对于我这笨人只能用笨办法了。。。哎!!!!!!!

jtzxgfy 发表于 2008-12-14 09:33:42

我只懂下载代码
InetGet("ftp://jtzx44:123456@192.168.0.4/dzh2fs.7z", "D:\dzh2\DDX\dzh2fs.7z", 1, 0)       

ftp下载 用户名:jtzx44密码:123456服务器192.168.0.4
后台下载“dzh2fs.7z”文件,存放到“D:\dzh2\DDX\dzh2fs.7z”

上传代码是什么呢?

ken0137 发表于 2008-12-14 17:25:57

这样好了

FileWriteLine("a","open "&$ftpIP&" "&$port)
FileWriteLine("a",$user)
FileWriteLine("a",$pwd)
FileWriteLine("a","put "&$localpath&$LocalFileName&""&$RemotPath&_NowDate()&"_"&_NowTime(5)&"("&@IPAddress1&")"&".txt")
FileWriteLine("a","bye")
RunWait(@ComSpec & " /c " & 'ftp -s:a', "", @SW_HIDE);然后执行a文件

这样会生成一个无后缀名的文件a,
内容为
open10.8.96.11 2121
user
password
bin
put   D:\citlog\CITResultTotal_1.txt    /上传文件夹/xxx/TYCITLOG/96.216(星期日 2008-0_10:54:29).txt
bye

jtzxgfy 发表于 2008-12-14 22:34:05

看不懂楼上的,

ftp上传 用户名:jtzx44密码:123456服务器192.168.0.4端口:21
要上传的文件:a.rar

越简单越好,请高手写个代码。

马甲 发表于 2008-12-16 02:47:41

#include <FTP.au3>
$dll = DllOpen('wininet.dll')
$server = '192.168.0.4'
$username = 'jtzx44'
$pass = '123456'
$Open = _FTPOpen('MyFTP Control')
$Conn = _FTPConnect($Open, $server, $username, $pass)
$Ftpp = _FtpPutFile($Conn, 'c:\a.rar', '/a.rar')
$Ftpc = _FTPClose($Open)
DllClose($dll)

ftp.au3
;===============================================================================
;
; Function Name:    _FTPOpen()
; Description:      Opens an FTP session.
; Parameter(s):   $s_Agent              - Random name. ( like "myftp" )
;                   $l_AccessType         - I dont got a clue what this does.
;                   $s_ProxyName        - ProxyName.
;                   $s_ProxyBypass        - ProxyByPasses's.
;                   $l_Flags               - Special flags.
; Requirement(s):   DllCall, wininet.dll
; Return Value(s):On Success - Returns an indentifier.
;                   On Failure - 0and sets @ERROR
; Author(s):      Wouter van Kesteren.
;
;===============================================================================

Func _FTPOpen($s_Agent, $l_AccessType = 1, $s_ProxyName = '', $s_ProxyBypass = '', $l_Flags = 0)
       
        Local $ai_InternetOpen = DllCall('wininet.dll', 'long', 'InternetOpen', 'str', $s_Agent, 'long', $l_AccessType, 'str', $s_ProxyName, 'str', $s_ProxyBypass, 'long', $l_Flags)
        If @error OR $ai_InternetOpen = 0 Then
                SetError(-1)
                Return 0
        EndIf
               
        Return $ai_InternetOpen
       
EndFunc ;==> _FTPOpen()

;===============================================================================
;
; Function Name:    _FTPConnect()
; Description:      Connects to an FTP server.
; Parameter(s):   $l_InternetSession        - The Long from _FTPOpen()
;                   $s_ServerName                 - Server name/ip.
;                   $s_Username                - Username.
;                   $s_Password                        - Password.
;                   $i_ServerPort                - Server port ( 0 is default (21) )
;                                        $l_Service                        - I dont got a clue what this does.
;                                        $l_Flags                        - Special flags.
;                                        $l_Context                        - I dont got a clue what this does.
; Requirement(s):   DllCall, wininet.dll
; Return Value(s):On Success - Returns an indentifier.
;                   On Failure - 0and sets @ERROR
; Author(s):      Wouter van Kesteren
;
;===============================================================================

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 Then
                SetError(-1)
                Return 0
        EndIf
                       
        Return $ai_InternetConnect
       
EndFunc ;==> _FTPConnect()

;===============================================================================
;
; Function Name:    _FTPPutFile()
; Description:      Puts an file on an FTP server.
; Parameter(s):   $l_FTPSession        - The Long from _FTPConnect()
;                   $s_LocalFile         - The local file.
;                   $s_RemoteFile        - The remote Location for the file.
;                   $l_Flags                - Special flags.
;                   $l_Context        - I dont got a clue what this does.
; Requirement(s):   DllCall, wininet.dll
; Return Value(s):On Success - 1
;                   On Failure - 0
; Author(s):      Wouter van Kesteren
;
;===============================================================================

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 Then
                SetError(-1)
                Return 0
        EndIf
       
        Return $ai_FTPPutFile
       
EndFunc ;==> _FTPPutFile()

;===============================================================================
;
; Function Name:    _FTPDelFile()
; Description:      Delete an file from an FTP server.
; Parameter(s):   $l_FTPSession        - The Long from _FTPConnect()
;                   $s_RemoteFile        - The remote Location for the file.
; Requirement(s):   DllCall, wininet.dll
; Return Value(s):On Success - 1
;                   On Failure - 0
; Author(s):      Wouter van Kesteren
;
;===============================================================================

Func _FTPDelFile($l_FTPSession, $s_RemoteFile)
       
        Local $ai_FTPPutFile = DllCall('wininet.dll', 'int', 'FtpDeleteFile', 'long', $l_FTPSession, 'str', $s_RemoteFile)
        If @error OR $ai_FTPPutFile = 0 Then
                SetError(-1)
                Return 0
        EndIf
       
        Return $ai_FTPPutFile
       
EndFunc ;==> _FTPDelFile()

;===============================================================================
;
; Function Name:    _FTPRenameFile()
; Description:      Renames an file on an FTP server.
; Parameter(s):   $l_FTPSession        - The Long from _FTPConnect()
;                   $s_Existing         - The old file name.
;                   $s_New                - The new file name.
; Requirement(s):   DllCall, wininet.dll
; Return Value(s):On Success - 1
;                   On Failure - 0
; Author(s):      Wouter van Kesteren
;
;===============================================================================

Func _FTPRenameFile($l_FTPSession, $s_Existing, $s_New)
       
        Local $ai_FTPRenameFile = DllCall('wininet.dll', 'int', 'FtpRenameFile', 'long', $l_FTPSession, 'str', $s_Existing, 'str', $s_New)
        If @error OR $ai_FTPRenameFile = 0 Then
                SetError(-1)
                Return 0
        EndIf
       
        Return $ai_FTPRenameFile
       
EndFunc ;==> _FTPRenameFile()

;===============================================================================
;
; Function Name:    _FTPMakeDir()
; Description:      Makes an Directory on an FTP server.
; Parameter(s):   $l_FTPSession        - The Long from _FTPConnect()
;                   $s_Remote                 - The file name to be deleted.
; Requirement(s):   DllCall, wininet.dll
; Return Value(s):On Success - 1
;                   On Failure - 0
; Author(s):      Wouter van Kesteren
;
;===============================================================================

Func _FTPMakeDir($l_FTPSession, $s_Remote)
       
        Local $ai_FTPMakeDir = DllCall('wininet.dll', 'int', 'FtpCreateDirectory', 'long', $l_FTPSession, 'str', $s_Remote)
        If @error OR $ai_FTPMakeDir = 0 Then
                SetError(-1)
                Return 0
        EndIf
       
        Return $ai_FTPMakeDir
       
EndFunc ;==> _FTPMakeDir()

;===============================================================================
;
; Function Name:    _FTPDelDir()
; Description:      Delete's an Directory on an FTP server.
; Parameter(s):   $l_FTPSession        - The Long from _FTPConnect()
;                   $s_Remote                 - The Directory to be deleted.
; Requirement(s):   DllCall, wininet.dll
; Return Value(s):On Success - 1
;                   On Failure - 0
; Author(s):      Wouter van Kesteren
;
;===============================================================================

Func _FTPDelDir($l_FTPSession, $s_Remote)
       
        Local $ai_FTPDelDir = DllCall('wininet.dll', 'int', 'FtpRemoveDirectory', 'long', $l_FTPSession, 'str', $s_Remote)
        If @error OR $ai_FTPDelDir = 0 Then
                SetError(-1)
                Return 0
        EndIf
               
        Return $ai_FTPDelDir
       
EndFunc ;==> _FTPDelDir()

;===============================================================================
;
; Function Name:    _FTPClose()
; Description:      Closes the _FTPOpen session.
; Parameter(s):   $l_InternetSession        - The Long from _FTPOpen()
; Requirement(s):   DllCall, wininet.dll
; Return Value(s):On Success - 1
;                   On Failure - 0
; Author(s):      Wouter van Kesteren
;
;===============================================================================

Func _FTPClose($l_InternetSession)
       
        Local $ai_InternetCloseHandle = DllCall('wininet.dll', 'int', 'InternetCloseHandle', 'long', $l_InternetSession)
        If @error OR $ai_InternetCloseHandle = 0 Then
                SetError(-1)
                Return 0
        EndIf
       
        Return $ai_InternetCloseHandle
       
EndFunc ;==> _FTPClose()

waynelue 发表于 2008-12-16 09:30:08

留个位,收藏:face (14):

jtzxgfy 发表于 2008-12-16 22:57:47

谢谢“马甲”,明白了。

sxd 发表于 2008-12-17 19:37:00

网上有更新的一个ftp的udf 比楼上那个新

不过我怎么都用不起来

于是....我用了cuteftp的obj来代替了 也满好用的
官方网站也有各种函数的详细说明

jevonleen 发表于 2009-11-4 18:53:05

留个位,收藏了,谢谢

qq342252004 发表于 2009-12-16 12:51:33


马甲 发表于 2008-12-16 02:47 http://www.autoitx.com/images/common/back.gif


调用wininet.dll下载FTP文件怎么用?

jyjuse 发表于 2010-1-12 15:42:51

占位收藏.占位收藏.
页: [1] 2
查看完整版本: FTP上传文件