hi 🙂
ich versuche gerade eine verbindung zu meinem ftp zu erstellen und eine datei hochzuladen. allerdings klappt das mal gar nicht 😠
ich hab mir die msdn mal angesehen zu ftpwebrequest und fptwebresponse was für mich scheinbar die richtigen klassen sein müssten um eine verbindung herzustellen.
hier mal etwas code:
class FTP
{
string host = "";
FtpWebRequest ftpRequest = null;
//WebPermission permission;
public FTP(string uri)
{
this.host = uri;
//this.permission = new WebPermission(NetworkAccess.Connect, uri);
//this.permission.AddPermission(NetworkAccess.Accept, uri);
}
public bool open(string username, string password)
{
this.ftpRequest = (FtpWebRequest)WebRequest.Create(this.host);
//this.ftpRequest.EnableSsl = true;
this.ftpRequest.Method = WebRequestMethods.Ftp.UploadFile;
this.ftpRequest.Proxy = null;
this.ftpRequest.Credentials = new NetworkCredential(username, password);
try
{
WebResponse response = this.ftpRequest.GetResponse();
//Console.WriteLine(response.ResponseUri.Host);
System.Windows.Forms.MessageBox.Show("OK");
return true;
}
catch (Exception ex)
{
Console.WriteLine(ex.StackTrace);
System.Windows.Forms.MessageBox.Show(ex.Message);
return false;
}
}
public void sendData(string filename)
{
FileStream fr = new FileStream(filename, FileMode.Open);
byte[] fileContents = new byte[fr.Length];
fr.Read(fileContents, 0, Convert.ToInt32(fr.Length));
fr.Flush();
fr.Close();
Stream requestStream = this.ftpRequest.GetRequestStream();
requestStream.Write(fileContents, 0, fileContents.Length);
requestStream.Close();
}
public void close()
{
this.ftpRequest.Abort();
}
}
wenn ich nun die methode open aufrufe erhalte ich immer eine WebException mit der ausgabe: die angeforderte uri ist für diesen ftp-befehl ungültig.
was mache ich da falsch und wie mache ich es richtig?
mfg
Afr0
Signatur:
Die Signatur wird unter Ihren Beiträgen dargestellt.
😁 😮 ?( 8) 😭 8o :] 🙁 =) X( 🙂 😜 😉 :rolleyes: 👶 :evil: 👅
Smilies find ich doof =]
die verbindung hab ich nun hinbekommen. und eine datei kann ich auch hochladen allerdings kann ich die datei nicht umbenennen.
this.ftpRequest.RenameTo = "datei.bla";
requestStream = this.ftpRequest.GetRequestStream();
requestStream.Write(fileContents, 0, fileContents.Length);
bringt leider nicht das gewünschte ergebnis...
Signatur:
Die Signatur wird unter Ihren Beiträgen dargestellt.
😁 😮 ?( 8) 😭 8o :] 🙁 =) X( 🙂 😜 😉 :rolleyes: 👶 :evil: 👅
Smilies find ich doof =]
Ich habe die Klasse zwar noch nie zum Umbenennen benutzt, aber ich vermute mal, du musst einen neuen Request mit dem alten Dateinamen erzeugen, die Methode auf Rename setzen, das Property RenameTo auf den neuen Namen setzen und dann per GetResponse ausführen...
danke, werd ich mal versuchen 🙂
Signatur:
Die Signatur wird unter Ihren Beiträgen dargestellt.
😁 😮 ?( 8) 😭 8o :] 🙁 =) X( 🙂 😜 😉 :rolleyes: 👶 :evil: 👅
Smilies find ich doof =]