Piszę aplikację do przesyłania obrazków na serwer. Działa to w ten sposób: najpierw aplikacja robi print screen z gry a następnie wysyła na serwer FTP. Czasem się jednak dzieje tak, że 1 na 3 obrazki nie prześle się pełny a np. 1/3. Cykl powtarza się domyślnie co 15 minut jednak dla testów co 3 sekundy. Może to być kwestia tego, że w zbyt krótkim czasie je wysyłam czy coś innego może być zepsute?
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://tucostam.pl" + name);
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential("mmml", "t222!");
byte[] data = File.ReadAllBytes(name);
Stream requestStream = request.GetRequestStream();
requestStream.Write(data, 0, data.Length);
requestStream.Close();
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
response.Close();
Obrazek robiony jest tak:
this.screenShot = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, PixelFormat.Format32bppArgb);
this.screen = Graphics.FromImage(screenShot);
this.screen.CopyFromScreen(Screen.PrimaryScreen.Bounds.X, Screen.PrimaryScreen.Bounds.Y, 0, 0, Screen.PrimaryScreen.Bounds.Size, CopyPixelOperation.SourceCopy);
this.imageFormat = ImageFormat.Png;
screenShot.Save(this.userName + minutes + ".png", this.imageFormat);
Do uruchomienia metody co 15 minut używam delegata TimerCallBack.