Beispiel #1
1
        public bool Put(Photo ph)
        {
            //функция отправки одной фотки (какой - в аргументах вызова) на сервер
            //lock (lock_)
            bool f = true;
            if(ph!=null)
            if (ph.name.Length>=32)
            try
            {
                ph.name = ph.name.Substring(32);
                string filepath = "photos" + "/" + ph.name.ToString().Substring(0, 1) + "/" +
                                                  ph.name.ToString().Substring(1, 1) + "/";
                //File.WriteAllBytes("photos" + "/" + ph.name, ph.photo);
                        //Console.WriteLine("Ищем путь " + "photos" + "/" + sb.ToString().Substring(0, 1) + "/" +sb.ToString().Substring(1, 1) + "/");
                if (Directory.Exists(filepath))
                {
                    try
                    {
                        //Console.WriteLine("Отправляем через sshfs");
                        if (!File.Exists(filepath + ph.name))
                            File.WriteAllBytes(filepath + ph.name, ph.photo);
                        /*else
                            Console.WriteLine("не отсылаем фото, т.к. оно уже на сервере");*/
                    }
                    catch (Exception exx)
                    {
                        string s = exx.Message;
                        if (!s.Contains("553"))
                            ddbs.WriteErrorMessage(ddbs.ConnectionString, 0, ph.name, "Ошибка отправки фоток-2: " + s);
                        Console.WriteLine("Ошибка отправки фоток-2: " + s);
                    }

                }
                else
                {
                    FTPClient conn = new FTPClient("srv5.r-slon.com");
                    if (conn != null)
                    {
                        try
                        {   
                            conn.Login("gsmcity", "fZZ9PQ1DnN");
                            conn.TransferType = FTPTransferType.BINARY;
                            conn.CloseStreamsAfterTransfer = true;
                            if (!conn.IsConnected)
                                conn.Connect();
                            filepath = filepath.Replace("photos/", "");
                            if(!conn.Exists(filepath + ph.name))
                                conn.Put(ph.photo, filepath + ph.name);
                            /*else
                                Console.WriteLine("не отсылаем фото, т.к. оно уже на сервере");*/
                        }
                        catch(Exception exx)
                        {
                            string s = exx.Message;
                            if(!s.Contains("553"))
                                ddbs.WriteErrorMessage(ddbs.ConnectionString, 0, ph.name, "Ошибка отправки фоток-0-1: " + s);
                            Console.WriteLine("Ошибка отправки фоток-0-1: " + s);
                        }
                        finally
                        {
                            conn.Quit();
                            GC.SuppressFinalize(conn);
                        }
                    }
                    else
                        ddbs.WriteErrorMessage(ddbs.ConnectionString, 0, ph.name, "Ошибка отправки фоток-0: не создалось ftp-подключение");

                }
            }
            catch (Exception ex)
            {
                string s = ex.Message;
                if (!(s.Contains("553") || s.Contains("530")))
                    f = false;
                ddbs.WriteErrorMessage(ddbs.ConnectionString, 0, ph.name, "Ошибка отправки фоток-1: " + s);
                //return false;
            }
            return f;
        }