Ich versuche eine Datei mit C # auf einen FTP-Server hochzuladen. Die Datei wird hochgeladen, jedoch mit null Bytes.
private void button2_Click(object sender, EventArgs e)
{
var dirPath = @"C:/Documents and Settings/sander.GD/Bureaublad/test/";
ftp ftpClient = new ftp("ftp://example.com/", "username", "password");
string[] files = Directory.GetFiles(dirPath,"*.*");
var uploadPath = "/httpdocs/album";
foreach (string file in files)
{
ftpClient.createDirectory("/test");
ftpClient.upload(uploadPath + "/" + Path.GetFileName(file), file);
}
if (string.IsNullOrEmpty(txtnaam.Text))
{
MessageBox.Show("Gelieve uw naam in te geven !");
}
}
c#
.net
file-upload
ftp
Webvision
quelle
quelle
Antworten:
Die vorhandenen Antworten sind gültig, aber warum das Rad neu erfinden und sich mit
WebRequest
Typen niedrigerer Ebenen beschäftigen , währendWebClient
das Hochladen von FTP bereits ordentlich implementiert wird:quelle
Wie benutzt man
Verwenden Sie dies in Ihrem Foreach
und Sie müssen nur einmal einen Ordner erstellen
um einen Ordner zu erstellen
quelle
request.GetResponse()
. Ohne diese Funktion funktioniert der Upload auf einigen Servern (zu Recht) nicht. Siehe Gewusst wie: Hochladen von Dateien mit FTP .Einfachster Weg
Die einfachste Möglichkeit, eine Datei mit .NET Framework auf einen FTP-Server hochzuladen, ist die folgende
WebClient.UploadFile
Methode :Erweiterte Optionen
Wenn Sie eine bessere Kontrolle benötigen, die
WebClient
diese nicht bietet (wie TLS / SSL-Verschlüsselung , ASCII-Modus, aktiver Modus usw.), verwenden SieFtpWebRequest
. Ein einfacher Weg ist, einenFileStream
in einen FTP-Stream zu kopieren , indem SieStream.CopyTo
:Fortschrittsüberwachung
Wenn Sie den Upload-Fortschritt überwachen müssen, müssen Sie den Inhalt selbst in Blöcke kopieren:
Informationen zum GUI-Fortschritt (WinForms
ProgressBar
) finden Sie im C # -Beispiel unter :Wie können wir den Fortschrittsbalken für das Hochladen mit FtpWebRequest anzeigen?
Ordner hochladen
Wenn Sie alle Dateien aus einem Ordner hochladen möchten,
lesen Sie Upload des Dateiverzeichnisses mit WebClient auf den FTP-Server .
Informationen zum rekursiven Hochladen finden Sie unter
Rekursives Hochladen auf den FTP-Server in C #
quelle
Folgendes funktioniert für mich:
Sie können den Dateiparameter in Ihrem Code nicht lesen, da es sich nur um den Dateinamen handelt.
Verwenden Sie Folgendes:
Um die Datei zu erhalten, können Sie sie an die
Send
Methode übergeben.quelle
quelle
Im ersten Beispiel müssen diese geändert werden in:
Erst spülen und danach schließen.
quelle
Dies funktioniert bei mir. Mit dieser Methode wird eine Datei per SFTP an einen Speicherort in Ihrem Netzwerk gesendet. Es verwendet die Bibliothek SSH.NET.2013.4.7. Man kann sie einfach kostenlos herunterladen.
quelle
Veröffentlichungsdatum: 26.06.2008
https://docs.microsoft.com/en-us/dotnet/framework/network-programming/how-to-upload-files-with-ftp
quelle
Ich habe beobachtet, dass -
Ich habe eine Methode vorbereitet, die so funktioniert. Sie können den Wert der Variablen ftpurl durch den Parameter TargetDestinationPath ersetzen. Ich hatte diese Methode in einer Winforms-Anwendung getestet:
Lassen Sie mich im Falle eines Problems wissen, oder hier ist ein weiterer Link, der Ihnen helfen kann:
https://msdn.microsoft.com/en-us/library/ms229715(v=vs.110).aspx
quelle