2011-04-11 17:59:58 +0000 2011-04-11 17:59:58 +0000
30
30

我可以使用FTP上传整个文件夹吗?

我需要用FTP上传一个完整的文件夹。有没有什么办法可以一次性传输一个文件夹和所有内容?

答案 (11)

24
24
24
2014-04-22 10:20:57 +0000

你可以使用ncftpput。进行以下操作。

1.安装 ncftp:

yum 是小写的.

或者。

apt-get install ncftp
  1. 执行以下命令。
ncftpput -R -v -u "ftp-username" ftp.website.com ftp-upload-path local-path/*
24
24
24
2011-05-09 11:50:59 +0000

如果你使用的是标准的命令行ftp客户端,MPUT命令将允许你传输所有匹配(shell glob-style)模式的文件,所以MPUT *将发送当前目录下的所有文件。还有MGET可以检索匹配模式的文件。

默认情况下,MPUTMGET都会在传输每个文件之前提示是否传输。你可能想用 “PROMPT "命令关闭提示(没有参数,这是一个切换)。

8
8
8
2011-04-12 13:45:04 +0000

使用一个FTP客户端,如LeechFTP或FileZilla或类似的东西。很多人发誓用CuteFTP,但我最后检查的是共享软件。都支持传输整个文件夹,包括目录结构。

5
5
5
2011-04-11 18:03:23 +0000

1.让用户/客户端压缩文件夹 2.上传压缩文件 3. 解压文件夹服务器端

2
2
2
2017-01-31 18:48:31 +0000

我将提供一个答案–虽然它是纯粹的蛮力,一点也不优雅–是唯一在命令行上对我有效的方法。我创建了一个文件列表,并将它们放入一个脚本中。

生成你的文件列表。

find my-dir -exec echo "put /Users/username/"{} {} \;

把它们复制并粘贴到脚本中。

#!/bin/bash

hostname="my-ftp-host"
username="username"
password="password"
ftp -in $hostname <<EOF
quote USER $username
quote PASS $password

binary
cd 123456
{COPY THE LIST HERE}
quit
EOF

复制并粘贴到脚本中:

0x1&

2
2
2
2014-11-18 18:33:31 +0000

为其他像我这样的Windows新手提供一个简单的教程。

上传整个文件夹(包括所有子文件夹和文件)的最简单方法是:

1.下载 NcFTP客户端(免费的,但你可以捐赠) 从这个链接。 2. 从列表中选择NcFTP Client 3.2.5 for Microsoft Windows。 3. 安装它。 4. 安装完成后,会弹出一个带有樱桃图标的CMD小窗口。你不需要它。 5. 只要打开一个标准的CMD窗口,然后输入。 ncftpput -u \*yourUserNameHere\* -p \*yourUserPasswordHere\* -R \*www.yourWebsite.com\* / \_C:\yourFolderDirectoryHere\*\_ (作为一行)。

请注意: -

-0x1& (作为一行)。

  • -R 是 “递归 "的标志;它使命令递归地复制所有子文件夹
  • / (斜线)是你网站的根目录
  • C:\yourFolderDirectoryHere\* 选择C:\yourFolderDirectoryHere内的所有内容。
1
1
1
2011-04-11 18:03:48 +0000

检查这个

你也可以在服务器上编程创建一个文件夹,然后把所有文件上传到那个新的文件夹。

0
0
0
2016-06-15 04:20:22 +0000

目标目录是一个zip文件。你可以使用下面的代码将完整的zip文件复制到ftp服务器上。

//Taking source and target directory path
string sourceDir = FilePath + "Files\" + dsCustomer.Tables[0].Rows[i][2].ToString() + "\ConfigurationFile\" + dsSystems.Tables[0].Rows[j][0].ToString() + "\XmlFile";

string targetDir = FilePath + "Files\Customers\" + CustomerName + "\" + SystemName + "\";                                                                                       
foreach (var srcPath in Directory.GetFiles(sourceDir))
{
    //Taking file name which is going to copy from the sourcefile                                              
    string result = System.IO.Path.GetFileName(srcPath);

    //If that filename exists in the target path
    if (File.Exists(targetDir + result))
    {
        //Copy file with a different name(appending "Con_" infront of the original filename)
        System.IO.File.Copy(srcPath, targetDir + "Con_" + result);
    }
    //If not existing filename
    else
    {
        //Just copy. Replace bit is false here. So there is no overwiting.
        File.Copy(srcPath, srcPath.Replace(sourceDir, targetDir), false);
    }
}
0
0
0
2011-04-12 14:20:35 +0000

火狐有一个插件,叫做FireFtp,是一个不错的ftp客户端。

0
0
0
2011-04-12 13:50:02 +0000

FileZilla是伟大的。如果你不想下载/安装任何东西,可以用Internet Explorer来完成。进入高级选项,然后选择Enable FTP folder view (outside of Internet Explorer)。然后,你可以将一个资源管理器窗口指向你的FTP服务器,并在资源管理器窗口之间拖放文件和文件夹。

0
0
0
2017-03-25 15:21:50 +0000

我的答案是@dgig 的答案的变体。

你可以列出所有的文件,然后把它们(包括put命令)保存到一个文件中。

find my-dir -exec echo "put /Users/username/"{} {} > list.txt \;

然后用sftp处理这个文件

sftp -C -b sftpbatchfile.txt name@server

-C是压缩文件,-b是批处理文件。