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

Posso caricare un'intera cartella usando FTP?

Ho bisogno di caricare un'intera cartella usando FTP. C'è qualche opzione per trasferire una cartella e tutto il suo contenuto in una volta sola?

Risposte (11)

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

Potete usare ncftpput. Fate quanto segue:

  1. Installare ncftp:

yum è minuscolo.

In alternativa:

apt-get install ncftp
  1. Eseguite il seguente comando:
ncftpput -R -v -u "ftp-username" ftp.website.com ftp-upload-path local-path/*
24
24
24
2011-05-09 11:50:59 +0000

Se state usando un client ftp standard a riga di comando, il comando MPUT vi permetterà di trasferire tutti i file che corrispondono a uno schema (stile glob della shell), quindi MPUT * invierà tutti i file nella directory corrente. C'è anche MGET per recuperare i file che corrispondono a uno schema.

Per default, sia MPUT che MGET chiederanno se trasferire ogni file prima di farlo. Probabilmente vorrete disattivare la richiesta con il comando “PROMPT” (nessun argomento; è un toggle).

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

Usa un client FTP come LeechFTP o FileZilla o qualcosa di simile. Molte persone giurano su CuteFTP, ma è shareware l'ultima volta che ho controllato. Tutti supportano il trasferimento di un'intera cartella, compresa la struttura delle directory.

5
5
5
2011-04-11 18:03:23 +0000
  1. fare in modo che l'utente/cliente zippi la cartella
  2. caricare il file zip
  3. decomprimere la cartella lato server .
2
2
2
2017-01-31 18:48:31 +0000

Offrirò una risposta che - sebbene sia pura forza bruta e non sia minimamente elegante - è stata l'unica cosa che ha funzionato per me sulla linea di comando. Ho creato una lista di file e li ho messi in uno script:

genera la tua lista di file:

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

copia e incolla nello script:

#!/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

Un semplice tutorial per altri neofiti di Windows come me che finiscono qui:

Il modo più semplice per caricare un'intera cartella (con tutte le sottocartelle e i file al loro interno) è:

  1. Scaricare NcFTP Client (è gratuito, ma si può donare) da questo link .
  2. Scegliere NcFTP Client 3.2.5 per Microsoft Windows dall'elenco.
  3. Installalo.
  4. Al termine, apparirà una piccola finestra CMD con un'icona a forma di ciliegia. Non ne hai bisogno.
  5. Apri semplicemente una finestra CMD standard e digita: ncftpput -u \*yourUserNameHere\* -p \*yourUserPasswordHere\* -R \*www.yourWebsite.com\* / \_C:\yourFolderDirectoryHere\*\_ (come una sola riga).

Notate che:

  • -R è un flag per “recursive”; fa sì che il comando copi ricorsivamente tutte le sottocartelle
  • / (slash) è la directory principale del tuo sito web
  • C:\yourFolderDirectoryHere\* seleziona tutto ciò che si trova dentro C:\yourFolderDirectoryHere
1
1
1
2011-04-11 18:03:48 +0000

Guarda questo fuori .

Puoi anche creare programmaticamente una cartella sul server , e poi caricare tutti i file in quella nuova cartella.

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

La cartella di destinazione è un file zip. Potete copiare il file zip completo nel server ftp usando il codice seguente.

//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

Firefox ha un plug-in chiamato FireFtp che è un bel client ftp.

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

FileZilla è ottimo per questo. Se non vuoi scaricare/installare nulla, questo può essere fatto con Internet Explorer. Vai nelle opzioni avanzate e seleziona Enable FTP folder view (outside of Internet Explorer). Poi puoi puntare una finestra di explorer al tuo server FTP e trascinare file e cartelle tra le finestre di explorer.

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

La mia risposta è una variazione della risposta di @dgig.

Puoi elencare tutti i file e salvarli (compreso il comando put) in un file:

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

e poi usare sftp per elaborare il file:

sftp -C -b sftpbatchfile.txt name@server

-C è per la compressione, -b è per il file batch