Laden...

ftpwebrequest und ftpwebresponse

Erstellt von Afrokalypse vor 17 Jahren Letzter Beitrag vor 17 Jahren 3.263 Views
A
Afrokalypse Themenstarter:in
452 Beiträge seit 2005
vor 17 Jahren
ftpwebrequest und ftpwebresponse

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 =]

A
Afrokalypse Themenstarter:in
452 Beiträge seit 2005
vor 17 Jahren

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 =]

B
1.529 Beiträge seit 2006
vor 17 Jahren

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...

A
Afrokalypse Themenstarter:in
452 Beiträge seit 2005
vor 17 Jahren

danke, werd ich mal versuchen 🙂

Signatur:
Die Signatur wird unter Ihren Beiträgen dargestellt.

😁 😮 ?( 8) 😭 8o :] 🙁 =) X( 🙂 😜 😉 :rolleyes: 👶 :evil: 👅
Smilies find ich doof =]