Entwickler-Ecke
ASP.NET und Web - Problem mit FtpWebRequest
ShadowKnight - So 02.08.09 23:14
Titel: Problem mit FtpWebRequest
Hallo, ich möchte eine Verbindung zu einem FTP-Server herstellen und eine Datei hochladen. Dies klappt, wenn ich bei der Credentials Eigenschaft des requests den Username und das Passwort direkt zuweise,
nicht aber wenn ich es mit Convert.ToString(txtUsername)... aus einer Textbox herausnehme.
Woran liegt das? Ich meine String ist String und die Verbindung funktioniert ja...
Hier der Code:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://.../test.txt"));
request.Method = WebRequestMethods.http://Ftp.UploadFile; request.Credentials = new NetworkCredential(txtUsername.ToString(), txtPassword.ToString()); request.UsePassive = true; request.UseBinary = true; request.KeepAlive = false;
FileStream stream = File.OpenRead("test.txt"); byte[] buffer = new byte[stream.Length];
stream.Read(buffer, 0, buffer.Length); stream.Close();
Stream reqStream = request.GetRequestStream(); reqStream.Write(buffer, 0, buffer.Length); reqStream.Close(); |
JüTho - Mo 03.08.09 07:59
Hallo und :welcome:
ich habe noch nie ausprobiert, was TextBox.ToString() macht; vielleicht kommt dabei etwas wie "System.Windows.Forms.TextBox" heraus. Du solltest auf jeden Fall den Inhalt der TextBox abfragen, denn den willst du ja haben; und das geht mit der Text-Eigenschaft direkt (und das ist schließlich ein String).
Merke: ToString und Convert sollten nur mit großer Zurückhaltung benutzt werden. Meistens gibt es bessere Wege.
Gruß Jürgen
ShadowKnight - Mo 03.08.09 13:05
ToString gibt bei einer Textbox den Inhalt als String zurück. Habe es wiegesagt auch schon per Convert versucht und auch mit MessageBox ausgegeben. Die Daten waren vollkommen richtig. Was meinst du für andere Wege?
Mfg ShadowKnight
JüTho - Mo 03.08.09 13:38
ShadowKnight hat folgendes geschrieben : |
ToString gibt bei einer Textbox den Inhalt als String zurück. |
Dann habe ich keine Erklärung, warum es nicht klappen sollte. Ich hatte es so gemeint:
C#-Quelltext
1:
| request.Credentials = new NetworkCredential(txtUsername.Text, txtPassword.Text); |
ShadowKnight hat folgendes geschrieben : |
Was meinst du für andere Wege? |
Das war nur vorsorglich gemeint. Beispielsweise ist Convert.ToDouble nicht so gut, double.Parse/TryParse sind viel besser geeignet.
Jürgen
ShadowKnight - Mo 03.08.09 16:34
Danke, nun funktioniert es. Habs total durcheinander gebracht...
danielf - Mo 03.08.09 17:01
Hallo ShadowKnight,
was JüTho meinte mit der ToString()-Methode ist (Vgl.
http://msdn.microsoft.com/de-de/library/system.windows.forms.textbox.tostring.aspx):
ToString()()() Gibt einen String zurück, der den aktuellen Object darstellt. (Von Object geerbt.)
Und das ist eben
Zitat: |
ich habe noch nie ausprobiert, was TextBox.ToString() macht; vielleicht kommt dabei etwas wie "System.Windows.Forms.TextBox" heraus. |
?this.textBox1.ToString()
"System.Windows.Forms.TextBox, Text: "
Deshalb nehm den Ratschlag von Jürgen an und lasse ToString sein.
Gruß Daniel
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!