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

¿Puedo subir una carpeta entera mediante FTP?

Necesito subir una carpeta completa mediante FTP. ¿Hay alguna opción para transferir una carpeta y todo su contenido a la vez?

Respuestas (11)

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

Puede utilizar ncftpput. Haga lo siguiente:

  1. Instale ncftp:

yum está en minúsculas.

Alternativamente:

apt-get install ncftp
  1. Ejecute el siguiente 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

Si está utilizando un cliente ftp de línea de comandos estándar, el comando MPUT le permitirá transferir todos los archivos que coincidan con un patrón (de estilo glob de la shell), por lo que MPUT * enviará todos los archivos del directorio actual. También existe MGET para recuperar los archivos que coincidan con un patrón.

Por defecto, tanto MPUT como MGET preguntarán si se debe transferir cada fichero antes de hacerlo. Probablemente quiera desactivar la pregunta con el comando “PROMPT” (sin argumento; es un conmutador).

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

Usa un cliente FTP como LeechFTP o FileZilla o algo similar. Mucha gente jura por CuteFTP, pero es shareware la última vez que lo comprobé. Todos soportan la transferencia de una carpeta completa, incluyendo la estructura de directorios.

5
5
5
2011-04-11 18:03:23 +0000
  1. hacer que el usuario/cliente comprima la carpeta
  2. subir el archivo zip
  3. descomprimir la carpeta del lado del servidor.
2
2
2
2017-01-31 18:48:31 +0000

Voy a ofrecer una respuesta que -aunque es pura fuerza bruta y no es elegante en lo más mínimo- fue lo único que me funcionó en la línea de comandos. Creé una lista de los archivos, y los puse en un script:

generar su lista de archivos:

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

copiarlos y pegarlos en el 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 sencillo tutorial para otros novatos de Windows como yo que acaben aquí:

La forma más sencilla de subir una carpeta entera (con todas las subcarpetas y archivos que contenga) es:

  1. Descargar NcFTP Client (es gratis, pero se puede donar) desde este enlace .
  2. Elija NcFTP Client 3.2.5 para Microsoft Windows de la lista.
  3. Instálalo.
  4. Cuando haya terminado, aparecerá una pequeña ventana de CMD con un icono de cerezas. No la necesita.
  5. Simplemente abre una ventana CMD estándar y escribe: ncftpput -u \*yourUserNameHere\* -p \*yourUserPasswordHere\* -R \*www.yourWebsite.com\* / \_C:\yourFolderDirectoryHere\*\_ (como una línea).

Tenga en cuenta que:

  • -R es una bandera para “recursivo”; hace que el comando copie todas las subcarpetas recursivamente
  • / (barra) es el directorio raíz de su sitio web
  • C:\yourFolderDirectoryHere\* selecciona todo lo que está dentro de C:\yourFolderDirectoryHere
1
1
1
2011-04-11 18:03:48 +0000

Compruebe esto .

También puede crear mediante programación una carpeta en el servidor , y luego subir todos los archivos a esa nueva carpeta.

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

El dir de destino es un archivo zip. Puede copiar el archivo zip completo en el servidor ftp utilizando el siguiente código.

//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 tiene un plug-in llamado FireFtp que es un buen cliente ftp.

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

FileZilla es genial para esto. Si no quieres descargar/instalar nada, esto se puede hacer con Internet Explorer. Ve a las opciones avanzadas y selecciona Enable FTP folder view (outside of Internet Explorer). Entonces puedes apuntar una ventana del explorador a tu servidor FTP y arrastrar y soltar archivos y carpetas entre las ventanas del explorador.

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

Mi respuesta es una variación de la respuesta de @dgig.

Puedes listar todos los archivos y guardarlos (incluyendo el comando put) en un archivo:

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

y luego usar sftp para procesar el archivo:

sftp -C -b sftpbatchfile.txt name@server

-C es para la compresión, -b es para el archivo por lotes