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; }