Могу ли я загрузить всю папку с помощью FTP?

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

17
задан Jeff Atwood
03.12.2022 16:47 Количество просмотров материала 2461
Распечатать страницу

11 ответов

если вы используете стандартный ftp-клиент командной строки,MPUT команда позволит вам передать все файлы, соответствующие шаблону (оболочка в стиле glob), так что MPUT * высылаем все файлы в текущем каталоге. Существует также MGET для получения файлов, соответствующих шаблону.

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

23
отвечен Dave Sherohman 2022-12-05 00:35

вы можете использовать ncftpput. Сделайте следующее:

  1. установить ncftp:

    yum install ncftp
    

ям-строчные.

кроме того:

    apt-get install ncftp

2. Выполните следующую команду:

    ncftpput -R -v -u "ftp-username" ftp.website.com ftp-upload-path local-path/*
18
отвечен Mohamed BK 2022-12-05 02:52

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

8
отвечен Joshua Nurczyk 2022-12-05 05:09
  1. пусть пользователь / клиент заархивирует папку
  2. загрузить zip-файл
  3. распакуйте в папку на стороне сервера.
5
отвечен Chase Florell 2022-12-05 07:26

простой учебник для других новичков Windows, как я, кто ветер здесь:

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

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

внимание:

  • -R - флаг "рекурсивный"; команда копирует все подпапки рекурсивно
  • / (Слэш) - корневой каталог вашего сайта
  • C:\yourFolderDirectoryHere\* выбирает все, что внутри C:\yourFolderDirectoryHere
2
отвечен DBS 2022-12-05 09:43

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

создать список файлов:

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
отвечен dgig 2022-12-05 12:00

Регистрация это.

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

1
отвечен BrandonZeider 2022-12-05 14:17

FileZilla отлично подходит для этого. Если вы не хотите ничего скачивать/устанавливать, Это можно сделать с помощью Internet Explorer. Перейдите в Дополнительные параметры и выберите Enable FTP folder view (outside of Internet Explorer). Затем можно указать окно Проводника на FTP-сервер и перетащить файлы и папки между окнами проводника.

0
отвечен Jim Fell 2022-12-05 16:34

Firefox имеет подключаемый модуль с именем FireFtp это хороший ftp-клиент.

0
отвечен jet 2022-12-05 18:51

целевой каталог-это 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
отвечен user606353 2022-12-05 21:08

мой ответ-вариация ответа @dgig.

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

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

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

sftp -C -b sftpbatchfile.txt name@server

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

0
отвечен Juraj.Lorinc 2022-12-05 23:25

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх