我正在编写一个可以将文件上传到多个FTP服务器的程序。
有一张桌子,在顶行有网站,在最左边的列有文件。通过这个表我定义了应该上传到哪里。
该程序已经在运行,但我现在要做的是在每个站点上并行上传文件。因此,当我点击开始时,如果特定单元格的内容如此,则每列将自行遍历行并将文件上载到该站点。网站可以是1到50之间的任何数字。所有上传应该是并行的。 (每个站点当时有一个文件)
我要问的是处理此类事情的最佳方法是什么?我知道我必须设置多个上传器,但令我困惑的是如何跟踪每个站点正在做什么。我能想到的唯一一个数组就是数组。每个位置都用于一个站点,该位置的数组定义了上传的文件以及它所需的所有信息。这会是一个很好的解决方案吗?
谢谢!
答案 0 :(得分:0)
您可以将数据放入数组,然后用于循环
使用此代码
$web = ['www.firstSite.com','www.secondSite.com']
$user = ['firstUser','secondUser']
$pass = ['firstPass','secondPass']
for($i=0;$i<sizeof($web);$i++)
{
$conn_id = ftp_connect($web[$i]);
$login_result = ftp_login($conn_id,$user[$i],$pass[$i]);
if (ftp_put($conn_id, $server_file, $local_file, FTP_BINARY))
{echo "Success";}
else {echo "Failed";}
}
答案 1 :(得分:0)
您可以创建自定义类,并使用List(Of SiteFiles)
来收集它们。您迭代站点数据并为每个站点创建新的SiteFiles
对象,并将文件名称添加到需要上载到该站点的Files
属性。然后,当您完成此List(Of SiteFiles)
时,您可以在SiteFiles.Files
中为每个SiteFiles
对象迭代每个文件,并在需要时使用线程/异步方法并上传文件。这为您提供了一个整洁而整洁的方式来组织您的工作。
Public Class SiteFiles
Public Property Site As String
Public Property Files As New List(Of String)
End Class