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

Могу ли я загрузить целую папку по FTP?

Advertisement

Мне нужно загрузить полную папку по FTP. Есть ли возможность перенести папку и все ее содержимое сразу?

Advertisement
Advertisement

Ответы (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 в стиле глобуса), поэтому MPUT * отправит все файлы в текущем каталоге. Также есть команда MGET для получения файлов, соответствующих шаблону.

По умолчанию, обе команды MPUT и MGET будут запрашивать, нужно ли передавать каждый файл перед этим. Вы, вероятно, захотите отключить подсказку с помощью команды “PROMPT” (без аргументов; это переключатель).

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

Используйте FTP клиент, такой как LeechFTP или FileZilla или что-то подобное. Многие люди клянутся CuteFTP, но это общее ПО, которое я проверял последний раз. Все поддерживают передачу целой папки, включая структуру каталогов.

5
5
5
2011-04-11 18:03:23 +0000
  1. застегните почтовую папку 0x2 и 2. загрузите zip-файл 0x2 и 3. распаковать папку на стороне сервера .
2
Advertisement
2
2
2017-01-31 18:48:31 +0000
Advertisement

Я предложу ответ, который - хотя это и чистая грубая сила и не элегантный в малейшей степени - был единственным, что работало для меня на командной строке. Я создал список файлов и поместил их в скрипт:

сгенерируйте список файлов:

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
2
2
2
2014-11-18 18:33:31 +0000

Простое руководство для других новичков в Windows, таких как я, которые оказываются здесь:

Самый простой способ загрузить целую папку (со всеми подпапками и файлами в них):

  1. Загрузите NcFTP Client (это бесплатно, но вы можете пожертвовать) по этой ссылке .
  2. Выберите NcFTP Client 3.2.5 для Microsoft Windows из списка.
  3. Установите его.
  4. После завершения установки откроется небольшое окно CMD со значком вишни. Оно вам не нужно.
  5. Просто откройте стандартное окно CMD и напечатайте его: ncftpput -u \*yourUserNameHere\* -p \*yourUserPasswordHere\* -R \*www.yourWebsite.com\* / \_C:\yourFolderDirectoryHere\*\_ (в одну строку).

Обратите внимание:

  • -R - флаг для “рекурсивного”; он заставляет команду копировать все подпапки рекурсивно
  • / (slash) - корневая директория вашего сайта
  • C:\yourFolderDirectoryHere\* выбирает все внутри C:\yourFolderDirectoryHere.
1
Advertisement
1
1
2011-04-11 18:03:48 +0000
Advertisement

Зацените это .

Вы также можете программно создать папку на сервере , а затем загрузить все файлы в эту новую папку.

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

Целевой dir - 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
Advertisement
0
0
2011-04-12 14:20:35 +0000
Advertisement

Firefox имеет плагин под названием 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 ‘s.

Вы можете перечислить все файлы и сохранить их (включая команду put) в файл:

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

и затем использовать sftp для обработки файла:

sftp -C -b sftpbatchfile.txt name@server

-C для сжатия, -b для пакетного файла

Advertisement

Похожие вопросы

10
13
7
7
8
Advertisement