如何处理多个上传?

时间:2013-07-18 17:44:23

标签: vb.net upload ftp multiple-instances

我正在编写一个可以将文件上传到多个FTP服务器的程序。

有一张桌子,在顶行有网站,在最左边的列有文件。通过这个表我定义了应该上传到哪里。

该程序已经在运行,但我现在要做的是在每个站点上并行上传文件。因此,当我点击开始时,如果特定单元格的内容如此,则每列将自行遍历行并将文件上载到该站点。网站可以是1到50之间的任何数字。所有上传应该是并行的。 (每个站点当时有一个文件)

我要问的是处理此类事情的最佳方法是什么?我知道我必须设置多个上传器,但令我困惑的是如何跟踪每个站点正在做什么。我能想到的唯一一个数组就是数组。每个位置都用于一个站点,该位置的数组定义了上传的文件以及它所需的所有信息。这会是一个很好的解决方案吗?

谢谢!

2 个答案:

答案 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