Мне нужно загрузить полную папку с помощью FTP. Есть ли возможность перенести папку и все ее содержимое сразу?
Могу ли я загрузить всю папку с помощью FTP?
11 ответов
если вы используете стандартный ftp-клиент командной строки,MPUT
команда позволит вам передать все файлы, соответствующие шаблону (оболочка в стиле glob), так что MPUT *
высылаем все файлы в текущем каталоге. Существует также MGET
для получения файлов, соответствующих шаблону.
по умолчанию MPUT
и MGET
предложит для того, чтобы передачи каждого файла, прежде чем делать так. Вы, вероятно, захотите отключить подсказку с помощью команды" PROMPT " (без аргументов; это коленчатый рычаг.)
вы можете использовать ncftpput. Сделайте следующее:
установить ncftp:
yum install ncftp
ям-строчные.
кроме того:
apt-get install ncftp
2. Выполните следующую команду:
ncftpput -R -v -u "ftp-username" ftp.website.com ftp-upload-path local-path/*
используйте FTP-клиент, такой как LeechFTP или FileZilla или что-то подобное. Многие люди клянутся CuteFTP, но это условно последний раз, когда я проверял. Все поддерживают передачу целой папки, включая структуру каталогов.
- пусть пользователь / клиент заархивирует папку
- загрузить zip-файл
- распакуйте в папку на стороне сервера.
простой учебник для других новичков Windows, как я, кто ветер здесь:
самый простой способ загрузить всю папку (со всеми подпапками и файлами в них):
- скачать Клиент NcFTP (это бесплатно, но вы можете пожертвовать) по этой ссылке.
- выбрать клиент NcFTP 3.2.5 для Windows из списка.
- установить его.
- когда сделано, небольшое окно CMD с вишня значок появится. Тебе это не понадобится.
- просто откройте стандартное окно CMD и введите:
ncftpput -u *yourUserNameHere* -p *yourUserPasswordHere* -R *www.yourWebsite.com* / _C:\yourFolderDirectoryHere\*_
(as one line).
внимание:
-R
- флаг "рекурсивный"; команда копирует все подпапки рекурсивно/
(Слэш) - корневой каталог вашего сайтаC:\yourFolderDirectoryHere\*
выбирает все, что внутриC:\yourFolderDirectoryHere
Я предложу ответ , который, хотя это чистая грубая сила и не элегантная ни в малейшей степени, был единственным, что работало для меня в командной строке. Я создал список файлов и поместил их в скрипт:
создать список файлов:
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
Регистрация это.
вы можете программно создать папку на сервере, а затем загрузить все файлы в эту новую папку.
FileZilla отлично подходит для этого. Если вы не хотите ничего скачивать/устанавливать, Это можно сделать с помощью Internet Explorer. Перейдите в Дополнительные параметры и выберите Enable FTP folder view (outside of Internet Explorer)
. Затем можно указать окно Проводника на FTP-сервер и перетащить файлы и папки между окнами проводника.
Firefox имеет подключаемый модуль с именем FireFtp это хороший ftp-клиент.
целевой каталог-это 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);
}
}
мой ответ-вариация ответа @dgig.
вы можете перечислить все файлы и сохранить их (включая команду put) в файл:
find my-dir -exec echo "put /Users/username/"{} {} > list.txt \;
, а затем использовать sftp для обработки файла:
sftp -C -b sftpbatchfile.txt name@server
-C
для сжатия, -b
для пакетного файла
Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]