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

Kan ik een hele map uploaden met FTP?

Ik moet een volledige map uploaden met FTP. Is er een mogelijkheid om een map en de gehele inhoud in één keer te uploaden?

Antwoorden (11)

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

U kunt ncftpput gebruiken. Doe het volgende:

  1. Installeer ncftp:

yum is kleine letters.

Als alternatief:

apt-get install ncftp
  1. Voer het volgende commando uit:
ncftpput -R -v -u "ftp-username" ftp.website.com ftp-upload-path local-path/*
24
24
24
2011-05-09 11:50:59 +0000

Als u een standaard command-line ftp-client gebruikt, kunt u met het commando MPUT alle bestanden verzenden die overeenkomen met een (shell glob-stijl) patroon, dus MPUT * verzendt alle bestanden in de huidige directory. Er is ook MGET om bestanden op te halen die overeenkomen met een patroon.

Standaard vragen zowel MPUT als MGET of ze elk bestand willen versturen voordat ze dat doen. Je zou het vragen waarschijnlijk uit willen zetten met het “PROMPT” commando (geen argument; het is een toggle).

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

Gebruik een FTP client zoals LeechFTP of FileZilla of iets dergelijks. Veel mensen zweren bij CuteFTP, maar dat is shareware, voor zover ik weet. Ze ondersteunen allemaal het overzetten van een hele map inclusief directory structuur.

5
5
5
2011-04-11 18:03:23 +0000
  1. Laat de gebruiker/cliënt de map zip-gen
  2. Upload het zip-bestand
  3. Unzip de map aan de serverkant ](http://weblogs.asp.net/jgalloway/archive/2007/10/25/creating-zip-archives-in-net-without-an-external-library-like-sharpziplib.aspx).
2
2
2
2017-01-31 18:48:31 +0000

Ik zal een antwoord geven dat - hoewel het pure brute kracht is en niet elegant - het enige was dat voor mij werkte op de commandoregel. Ik heb een lijst met bestanden gemaakt, en die in een script gezet:

genereer je lijst met bestanden:

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

kopieer en plak ze in het 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

Een eenvoudige handleiding voor andere Windows-newbies zoals ik die hier terechtkomen:

De eenvoudigste manier om een hele map (met alle submappen en bestanden erin) te uploaden is:

  1. Download NcFTP Client (het is gratis, maar je kunt doneren) vanaf deze link .
  2. Kies NcFTP Client 3.2.5 voor Microsoft Windows uit de lijst.
  3. Installeer het.
  4. Als dat klaar is, verschijnt er een klein CMD-venster met een kersenpictogram. Dat heb je niet nodig.
  5. Open gewoon een standaard CMD venster en type: ncftpput -u \*yourUserNameHere\* -p \*yourUserPasswordHere\* -R \*www.yourWebsite.com\* / \_C:\yourFolderDirectoryHere\*\_ (als één regel).

Merk op dat:

  • -R is een vlag voor “recursief”; het commando kopieert dan recursief alle submappen
  • / (schuine streep) is de hoofdmap van je website
  • C:\yourFolderDirectoryHere\* selecteert alles binnen C:\yourFolderDirectoryHere
1
1
1
2011-04-11 18:03:48 +0000

Kijk hier eens naar .

Je kunt ook programmatisch een map op de server aanmaken , en dan alle bestanden naar die nieuwe map uploaden.

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

De doel dir is een zip bestand. U kunt het volledige zip-bestand naar de ftp-server kopiëren met onderstaande code.

//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 heeft een plug-in genaamd FireFtp dat is een mooie ftp client.

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

FileZilla is hier geweldig voor. Als u niets wilt downloaden/installeren, kan dit ook met Internet Explorer. Ga naar de geavanceerde opties, en selecteer Enable FTP folder view (outside of Internet Explorer). Dan kun je een verkennervenster richten op je FTP-server en bestanden en mappen slepen tussen verkennervensters.

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

Mijn antwoord is een variatie op @dgig ‘s antwoord.

Je kunt een lijst maken van alle bestanden en ze opslaan (inclusief put-commando) in een bestand:

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

en dan sftp gebruiken om het bestand te verwerken:

sftp -C -b sftpbatchfile.txt name@server

-C is voor compressie, -b is voor batch-bestand