怎么让文件自动上传ftp服务器

怎么让文件自动上传ftp服务器,第1张

下载一个ftp工具(flashftp),然后添加上你的ftp账号信息,建立连接,然后一般情况下都是左右两个工作界面,一边是自己本地窗口,另一边是服务端窗口,这样就可以选中本地文件传输到服务器空间了

挺多这样的软件~~
我用的是Bestsync,就是觉得 *** 作简单,容易上手,也不占用太多系统内存,我用了很久了,感觉还不错了
举个例子,比如:
1 你本地装上软件以后,在主菜单里面 编辑-->追加任务
文件夹1选择 驱动盘中要备份的文件夹位置
文件夹2选择 选择FTP(填写FTP地址等相关参数)
同步方向为 文件夹2 --》文件夹1
在 FTP设定 下面填写服务器地址,账户名,密码等信息)

然后选择 完成 按钮
2 在主界面下,双击你刚建立的任务,会d出属性对话框
3 选择“日程”属性页,勾选最后一个复选框“按指定日程启动任务”,然后在下面选择你想同步的具体时间点就Ok了~~嘿嘿

首先去下载个 FTPExau3

给段源码你研究吧


#include <FTPExau3>
#include <Arrayau3>
Local $path
$server = '19216811' ;服务器
$name = 'admin' ;用户名
$pass = 'admin' ;密码
$Port = '21' ;端口
$path = "c:\a1乡村\" ;远程路径,FTP的路径。
$RemoteDir = $path ;远程根路径转换,不用管它。
$LocalDir = "D:\存储软件\au3\进行中\FTP同步\实验室1\同步路径\" ;本地路径,你想让文件下载到哪里?
$LocalDir = flocalDir($RemoteDir, $LocalDir);转换首目录,不用管
;~ MsgBox(0, "$LocalDir", $LocalDir)
ftp($server, $name, $pass, $Port, $path, $RemoteDir)
Func ftp($server, $name, $pass, $Port, $path, $RemoteDir)
        ;说明:主要函数,搜索,下载
        $Open = _FTP_Open('MyFTP') ;打开一个FTP会话
        $Conn = _FTP_Connect($Open, $server, $name, $pass, 0, $Port) ;连接到ftp服务器
        _FTP_DirSetCurrent($Conn, $path)
        $aFile = _FTP_ListToArrayEx($Conn, 0, 0) ;列目录(0=文件和目录,1=目录,2=文件)(格式0=mm/dd/yyyy,1=yyyy/mm/dd)
;~         _ArrayDisplay($aFile)
;~ MsgBox(0,"显示","共(" & $aFile[0][0] & ")个")
;~ MsgBox(0,"$aFile[$i][0个]文件名",$aFile[0][0])
        For $i = 1 To $aFile[0][0]
                If $aFile[$i][2] = 16 And $aFile[$i][0] <> "" And $aFile[$i][0] <> "" Then
;~         $path=$path&$aFile[$i][0]&"\"
;~                         MsgBox(0, "$path", $path & $aFile[$i][0] & "\", $RemoteDir)
                        ftp($server, $name, $pass, $Port, $path & $aFile[$i][0] & "\", $RemoteDir)
                EndIf
                If $aFile[$i][0] <> "" And $aFile[$i][0] <> "" And $aFile[$i][2] <> 16 Then
                        ;检验
;~                                 MsgBox(0,"",$aFile[$i][0])
                        $fname = $aFile[$i][0];文件名
                        $sync = ftpsync($LocalDir, $RemoteDir, $path, $fname)
;~                         MsgBox(0,"是否存在文件返回信息",$sync)
;~ If $fname = "PiViewmdb" Then
;~                         MsgBox(0, "$sync", $sync[0]&@LF&$sync[1])
;~ EndIf
                        Select
                                Case $sync[0] = 1;未发现文件
                                        $ftp_download = _FTP_FileGet($Conn, $path & $fname, $sync[1], False) ;下载文件(True=覆盖 False=不覆盖(默认))
;~                                         MsgBox(0, $path & $fname, $sync[1])
                                Case $sync[0] = 2;发现有同名文件
                                        $ftpsize = _FTP_FileGetSize($Conn, $path & $aFile[$i][0])
                                        $localsize = FileGetSize($sync)
;~                                         MsgBox(0, "大小对比", $ftpsize & "-" & $localsize)
                                        If $ftpsize <> $localsize Then
;~                                                 MsgBox(0, "大小对比不成功", $ftpsize & "-" & $localsize)
;~                                                 MsgBox(0, "大小对比不成功", $path & $aFile[$i][0]& "-" & $sync)
                                                $ftp_download = _FTP_FileGet($Conn, $path & $fname, $sync[1], False)
;~                                                 MsgBox(0,"$ftp_download",$ftp_download)
                                        EndIf
                                Case Else
                                        MsgBox(0, "意外错误", "搜索失败")
                        EndSelect
;~         MsgBox(0,"次数",$aFile[$i][0])
                EndIf
;~ MsgBox(0,"显示","名 = " & $aFile[$i][0] & @CRLF & $aFile[$i][1] & @CRLF & $aFile[$i][2] & @CRLF & $aFile[$i][3] & @CRLF & $aFile[$i][4] & @CRLF & $aFile[$i][5])
        Next
        ;$aFile[$i][0个]文件名
        ;$aFile[$i][1]文件大小
        ;$aFile[$i][2]文件属性
        ;$aFile[$i][3]文件修改日期-时间
        ;$aFile[$i][4]文件创作日期-时间
        ;$aFile[$i][5]文件通入日期-时间
        $Ftpc = _FTP_Close($Open) ;关闭 _FTP_Open 打开的回话
EndFunc   ;==>ftp
;~ Func Download
;~         用途:下载一个FTP上的文件
;~ $ftp_download = _FTP_FileGet($Conn, "111\test222txt", "e:\au3_ftp\test222txt", False) ;下载文件(True=覆盖 False=不覆盖(默认))
;~ EndFunc   ;==>ftp
Func ftpsync($LocalDir, $RemoteDir, $path, $fname);本地路径,远程根路径路径,变化中的远程路径,要下载的文件名。
        Local $loc12
        $loc12 = _ArrayCreate("0", "0")
;~         说明:位置错误返回0,失败返回1,成功返回路径。主要用来判断是否有相同的文件。
        If FileExists($LocalDir) Then;看看本地是否存在,要是不存在就创建一个。
        Else
                DirCreate($LocalDir)
        EndIf
        Local $len = StringLen($RemoteDir)
        Local $len1 = StringLen($path)
        $New = StringRight($path, $len1 - $len)
;~         MsgBox(0, "$New", $New)
;~         MsgBox(0, "$fname", $fname)
        If FileExists($LocalDir & $New) Then
        Else
                ;创建目录
                DirCreate($LocalDir & $New)
        EndIf
;~         MsgBox(0,"需要判断是否存在的文件",$LocalDir & $New & $fname)
        If FileExists($LocalDir & $New & $fname) Then
                ;判断文件大小
                $loc12[0] = 2
                $loc12[1] = $LocalDir & $New & $fname
;~                 Return $LocalDir & $New & $fname
;~ MsgBox(0,"文件是否存在判定-是存在",$LocalDir & $New & $fname)
                
        Else
                ;创建目录下载文件
                
;~                 Return 1
                $loc12[0] = 1
                $loc12[1] = $LocalDir & $New & $fname
        EndIf
        Return $loc12
EndFunc   ;==>ftpsync
Func flocalDir($RemoteDir, $LocalDir)
;~         说明:创建首目录
        $LOG = StringSplit($RemoteDir, "\")
        If $LOG[0] <= 1 Then;如果呢~ 只有根目录盘那就是C盘根目录
                Local $result = StringLeft($RemoteDir, 1)
                $LocalDir = $LocalDir & $result & "盘根目录\"
                Return $LocalDir
        Else;如果不是那远程目录的最后一个文件夹,便是根目录的最后一个文件夹了。
                $Loc1 = $LOG[$LOG[0] - 1]
                $LocalDir = $LocalDir & $Loc1 & "\"
                Return $LocalDir
                
        EndIf
EndFunc   ;==>flocalDir

如果你还没用上传使用的程序。可以使用下面的代码生产一个FTP上传所需的可执行程序。如果有了直接看2
FtpClient fc=new FtpClient("ftp://17216202","用户名","密码");
fcUpload(new FileInfo(@"要上传文件路径名","上传后该文件以什么名字在ftp服务器上显示");
consoleWriteLine("ok");

以上是一段c#写的ftp上传文件的代码。FtpClient是一个第三方帮助文件,要引用到程序中
在vs中编译运行后得到可执行文件(exe)

2然后打开控制面板->任务计划->添加任务计划(双击)->任务计划向导(点击下一步)->浏览->选择已有的FTP上传程序(或者选中刚刚生产的可执行文件)
接着就按个人需要点击就可以了。

rem -----------脚本开始---------------
@echo on
set ftpfile=putfilesftp
set logfile=putfileslog
echo open (IP地址) (端口) > "%ftpfile%"
rem 把下面行中的 username和password改为你的用户名和密码
echo user (username) (password) >> "%ftpfile%"
rem ------------------------------
echo bin >> "%ftpfile%"
rem 进入FTP server 中的"X"目录
echo cd (ftp目录) >> "%ftpfile%"
rem ------------------------------
rem 进入本地C盘根目录
echo lcd d:\ >> "%ftpfile%"
rem ------------------------------
echo put 1TXT >> "%ftpfile%"
echo quit >> "%ftpfile%"
echo -------------------------------- >> "%logfile%"
date /t >> "%logfile%"
time /t >> "%logfile%"
echo -------------------------------- >> "%logfile%"
ftp -n < "%ftpfile%" >> "%logfile%"
del "%ftpfile%"
@echo on
rem -----------脚本结束---------------

该类的软件有很多,NcFTP,8Uftp,IIS7服务器管理软件都可以同步。

1IIS7服务器管理软件能够批量管理FTP,定时上传和下载,自动更新的功能。

此外,它不仅可以管理ftp,同时也是vnc的客户端iis7服务器管理工具,是服务器批量管理集成器windows与linux都可以集成管理,可谓是非常方便 NcFTP

2NcFTP是在UNIX上的FTP程序,世界各地都在使用它。相比其他软件,它更可靠,更安全。它广泛运行在Windows、Mac OS X和Linux等大型平台上。它的免费工具经由艺术协议授权。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13392435.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-27
下一篇 2023-07-27

发表评论

登录后才能评论

评论列表(0条)

保存