kostenloser Webspace werbefrei: lima-city


Zu FTP verbinden mit C# ?

lima-cityForumProgrammiersprachenProgrammieren mit .NET & Mono

  1. Autor dieses Themas

    t**************t

    Heyho lima-city-Community!

    Weiß jemand wie ich mich mit C# Consoe zu FTP verbinde um z. B. ein Foto hochzuladen oder geht sowas mit PHP - C# ?!
    Ich bin ein Anfänger in C# also bitte seid gnädig :)

    MfG TeamMeinInternet
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Beispiel:
    http://dotnet-snippets.de/snippet/datei-auf-einen-ftp-uploaden/494

    Beitrag zuletzt geändert: 1.12.2015 22:34:18 von sv00010
  4. Autor dieses Themas

    t**************t

    sv00010 schrieb:
    Beispiel:
    http://dotnet-snippets.de/snippet/datei-auf-einen-ftp-uploaden/494


    Danke, das hat mir echt weitergeholfen! Jetzt muss ich nur noch gucken wie ich das mit dem Dateiupload von Screenshots anstelle ;)
  5. Moinsen ^^


    static void Main(string[] args)
            {
                var pic = Screenshot();
                pic.Save(Guid.NewGuid().ToString() + ".jpg"); // Name des Bilds
    
            }
    
            public static Bitmap Screenshot()
            {
                Bitmap screen = new Bitmap(SystemInformation.VirtualScreen.Width, SystemInformation.VirtualScreen.Height);
    
                using (Graphics g = Graphics.FromImage(screen))
                {
                    g.CopyFromScreen(SystemInformation.VirtualScreen.X, SystemInformation.VirtualScreen.Y, 0, 0, screen.Size);
                    g.Dispose();
                }
                
                return screen;
            }


    Sollte so passen, falls nicht, sag bescheid.

    MfG Trancer.

    P.S.: Ich persönlich finde es nicht gut, wenn man auf andere Foren verlinkt ohne ein Kommentar. Problem dabei ist, dass wenn das Forum/die Page offline geht, wird der Link ins Nichts führen und alle die diesen Thread lesen verstehen nicht worum es geht.
  6. Autor dieses Themas

    t**************t

    trancedrome schrieb:
    Moinsen ^^


    static void Main(string[] args)
            {
                var pic = Screenshot();
                pic.Save(Guid.NewGuid().ToString() + ".jpg"); // Name des Bilds
    
            }
    
            public static Bitmap Screenshot()
            {
                Bitmap screen = new Bitmap(SystemInformation.VirtualScreen.Width, SystemInformation.VirtualScreen.Height);
    
                using (Graphics g = Graphics.FromImage(screen))
                {
                    g.CopyFromScreen(SystemInformation.VirtualScreen.X, SystemInformation.VirtualScreen.Y, 0, 0, screen.Size);
                    g.Dispose();
                }
                
                return screen;
            }


    Sollte so passen, falls nicht, sag bescheid.

    MfG Trancer.

    P.S.: Ich persönlich finde es nicht gut, wenn man auf andere Foren verlinkt ohne ein Kommentar. Problem dabei ist, dass wenn das Forum/die Page offline geht, wird der Link ins Nichts führen und alle die diesen Thread lesen verstehen nicht worum es geht.



    Das ist jetzt aber für Forms und nicht für die Konsol oder?
  7. onlinevideorecorder

    onlinevideorecorder hat kostenlosen Webspace.

    teammeininternet schrieb:
    Das ist jetzt aber für Forms und nicht für die Konsol oder?

    Das sieht eher nach der Konsole aus.
    Es sei denn deine Klasse heißt wirklich Main.

    Beitrag zuletzt geändert: 7.12.2015 8:10:24 von onlinevideorecorder
  8. teammeininternet schrieb:
    trancedrome schrieb:
    Moinsen ^^


    static void Main(string[] args)
            {
                var pic = Screenshot();
                pic.Save(Guid.NewGuid().ToString() + ".jpg"); // Name des Bilds
    
            }
    
            public static Bitmap Screenshot()
            {
                Bitmap screen = new Bitmap(SystemInformation.VirtualScreen.Width, SystemInformation.VirtualScreen.Height);
    
                using (Graphics g = Graphics.FromImage(screen))
                {
                    g.CopyFromScreen(SystemInformation.VirtualScreen.X, SystemInformation.VirtualScreen.Y, 0, 0, screen.Size);
                    g.Dispose();
                }
                
                return screen;
            }


    Sollte so passen, falls nicht, sag bescheid.

    MfG Trancer.

    P.S.: Ich persönlich finde es nicht gut, wenn man auf andere Foren verlinkt ohne ein Kommentar. Problem dabei ist, dass wenn das Forum/die Page offline geht, wird der Link ins Nichts führen und alle die diesen Thread lesen verstehen nicht worum es geht.



    Das ist jetzt aber für Forms und nicht für die Konsol oder?


    Eigentlich brauchst du bei meinem Beispiel nur die Funktion "Screenshot" aufrufen und den Output (welches ein System.Drawing.Bitmap ist) speichern und via FTP hochladen.
    Es ist richtig, dass du noch den Verweis auf "System.Windows.Forms" brauchst, damit du die Funktion nutzen kannst.
    Also System.Windows.Forms und System.Drawing in die Verweise und in die Usings aufnehmen, dann solltest du keine Probleme haben.

    Falls doch noch Probleme bestehen, bitte ich einmal um den Sourcecode - dann kann ich es einfacher debuggen, als das ich versuche dein Programm selber nachbaue. ;-)
    (Wobei ich gerade daran denke, es wirklich zu tun ^.^)

    EDIT:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Drawing;
    using System.Windows.Forms;
    using System.Net;
    using System.IO;
    
    
        class Program
        {
            static void Main(string[] args)
            {
                var pic = Screenshot();
                string file = Guid.NewGuid().ToString() + ".jpg";
                pic.Save(file);
                SaveOnFtP(file);
    
                Console.ReadLine();
            }
    
            public static Bitmap Screenshot()
            {
                Bitmap screen = new Bitmap(SystemInformation.VirtualScreen.Width, SystemInformation.VirtualScreen.Height);
    
                using (Graphics g = Graphics.FromImage(screen))
                {
                    g.CopyFromScreen(SystemInformation.VirtualScreen.X, SystemInformation.VirtualScreen.Y, 0, 0, screen.Size);
                    g.Dispose();
                }
                
                return screen;
            }
    
            private static void SaveOnFtP(string file)
            {
                //Ein Request erstellen an den ftp Server
                FtpWebRequest request = (FtpWebRequest)WebRequest.Create("[FTP-SERVER-URL]" + file);
    
                //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("[BENUTZER]", "[PASSWORT]");
    
                bool isConnected = false;
    
                try
                {
                    //Versuch eine Verbindung zu erstellen und eine Antwort zu erhalten
                    WebResponse response = request.GetResponse();
                    Console.WriteLine("Response hat funktioniert");
                    isConnected = true;
                }
                catch (Exception exp)
                {
                    Console.WriteLine(exp.ToString());
                }
    
                if (isConnected)
                {
    
                    //Neuer FileStream erstellen für die Datei
                    FileStream fs = new FileStream(file, 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();
                    Console.WriteLine("Datei hochgeladen.");
                }
            }
        }


    ;-) Mir war langweilig ^.^ Nur so ein kleiner Consolen-Problem.

    Beitrag zuletzt geändert: 8.12.2015 0:32:08 von trancedrome
  9. Autor dieses Themas

    t**************t

    Das sieht ganz gut aus und werd ich auch testen, aber da kann ich jetzt selber keinen Screenshot machen oder? (Sry programmier noch nich lange und noch nich so viel mit new :( )


    PS:
    Du hast die Methode mit dem Login private gemacht weil es sicherer ist und das public damit es auch außerhalb der Klasse aufrufbar ist oder? Nur für mich :) zum lernen

    Beitrag zuletzt geändert: 18.12.2015 17:28:10 von teammeininternet
  10. teammeininternet schrieb:
    Das sieht ganz gut aus und werd ich auch testen, aber da kann ich jetzt selber keinen Screenshot machen oder? (Sry programmier noch nich lange und noch nich so viel mit new :( )


    PS:
    Du hast die Methode mit dem Login private gemacht weil es sicherer ist und das public damit es auch außerhalb der Klasse aufrufbar ist oder? Nur für mich :) zum lernen


    Die Accessors habe ich mehr oder weniger zufällig genutzt.
    Bei der OOP (Objektorientierte Programmierung) werden public und private für Methods oder Property (Eigenschaften) um die Sichtbarkeit / Zugriffsmöglichkeit darzustellen.

    Habe ich zum Beispiel eine Klasse mit zwei Properties
    public class Mensch
            {
                public string Vorname;
                public string Nachname;
            }

    oo kann ich diese Klasse mit
    var mensch = new Mensch();

    erzeugen.

    Über
    mensch.Vorname = "Max";
                mensch.Nachname = "Mustermann";

    habe ich nun die beiden Eigenschaften nun mit einem Value gefüllt.

    Ändere ich die Klasse nun wie folgt:
    public class Mensch
        {
            public string Vorname
            {
                get;
                private set;
            }
    
            public string Nachname
            {
                get;
                private set;
            }
        }

    Kann ich die Eigenschaften nur noch von Innen setzen.
    ABER da meine Mensch-Klasse keine Funktionen noch einen Konstruktor hat, kann ich die Properties nicht setzen.

    Damit ich die Properties nun setzen kann erweitere ich die Klasse nun um einen Konstruktor:
    public class Mensch
        {
            public Mensch(string vorname, string nachname)
            {
                this.Vorname = vorname;
                this.Nachname = nachname;
            }
    
            public string Vorname
            {
                get;
                private set;
            }
    
            public string Nachname
            {
                get;
                private set;
            }
        }


    Der Aufrufe ist nun so
    var mensch = new Mensch("Max", "Mustermann");


    und man kann die beiden Properties von Außen abrufen
    string vorname = mensch.Vorname;
                string nachname = mensch.Nachname;


    Ich hoffe das konnte irgendwie ein wenig helfen!
    Ich möchte dazu sagen, dies ist nur ein kleines Beispiel.
  11. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!