Upload einer Datei über C# Progrann
lima-city → Forum → Programmiersprachen → Programmieren mit .NET & Mono
abort
befehl
beispiel
byte
code
datei
erstellen
ftp
information
lokal speichern
port
programm
server
setzen
show
standard
testen
url
verbindung
verzichten
-
Nabend!
Ich würde gerne über meine Programm Dateien hochladen können. Der Download funktioniert bereits. Jedoch habe ich mit dem Upload gewisse Probleme:
private void button1_Click(object sender, EventArgs e) { //Eine neue Datei erstellen und lokal speichern (Beispiel hier: Textfile) StreamWriter w = new StreamWriter("C://Beispiele/MyFile.txt", true); w.WriteLine("BlaBlaBla"); w.Close(); //Ein Request erstellen an den ftp Server FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://dultus@dultus.lima-ftp.de:21"); //Die Methode angeben um eine Datei hochzuladen request.Method = WebRequestMethods.Ftp.UploadFile; //Berechtigungsdetails setzen vom ftp Server durch Username und Passwort request.Credentials = new NetworkCredential("NAME", "PASSWORT"); try { //Versuch eine Verbindung zu erstellen und eine Antwort zu erhalten WebResponse response = request.GetResponse(); MessageBox.Show("Response hat funktioniert"); } catch (Exception exp) { throw exp; } //Neuer FileStream erstellen für die Datei FileStream fs = new FileStream("C://Beispiele/MyFile.txt", FileMode.Open); byte[] fileContents = new byte[fs.Length]; fs.Read(fileContents, 0, Convert.ToInt32(fs.Length)); fs.Flush(); fs.Close(); //Ein neuen Stream für den Request erstellen dem der FileStream mitgegeben wird. Stream requestStream = request.GetRequestStream(); requestStream.Write(fileContents, 0, fileContents.Length); requestStream.Close(); //Verbindung abbschliessen request.Abort(); }
funktionieren tut's noch nicht.
(Exception: Zusätzliche Informationen: Der angeforderte URI ist für diesen FTP-Befehl ungültig. ")
Daher frag ich mich auch, ob "FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://dultus@dultus.lima-ftp.de:21");" richtig ist.
Wenn mich jemand auf den Fehler hinweisen könnte, würde ich mich sehr freuen!
Einen schönen guten Abend noch soweit und danke!
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ohne das jetzt testen zu können:
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(new Uri("ftp://dultus.lima-ftp.de"));
Das ":21" am Ende ist der Standard-Port, den sollte man eigentlich weg lassen können. Das "dultus@" ist die Benutzerkennung, welche du ja über die NetworkCredentials setzt.
Wäre es denn aber nicht allgemein einfacher, wie hier beschrieben, via WebClient? Oder gibt es einen besonderen Grund, darauf zu verzichten? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage