Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.65/34: Рейтинг темы: голосов - 34, средняя оценка - 4.65
6 / 6 / 0
Регистрация: 23.12.2015
Сообщений: 227

Upload на FTP

18.10.2018, 13:15. Показов 9057. Ответов 203
Метки ftp (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, цель => загрузить файлы на ftp, у каждого файла есть своя папка на ftp сервере, ее название совпадает с названием файла, таких файлов 200шт, нужно из загрузить на сервер, сделал и понял что н могу понять как обьеденить все это, ибо без цикла обработки файлов никак, а вытазить переменные не получается, подскажите как это решить

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace ftp
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
 
        }
        private List<string> a = new List<string>();
        private void button1_Click(object sender, EventArgs e)
        {
 
            MessageBox.Show("Пусто!");
 
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
             Task.Run(() => Upload());
        }
 
        private void Upload()
        {
            DirectoryInfo dir = new DirectoryInfo(@"C:\Users\Desktop\1\2");
            List<string> files = Directory.GetFiles(dir.ToString(), "*.zip", SearchOption.AllDirectories).ToList();
            
            string login = " ";
            string pasword = " ";
 
            WebClient client = new WebClient();
            client.Credentials = new NetworkCredential(login, pasword);
            client.UploadFile("ftp://v.ru/"+files, @"C:\Users\Desktop\1\2\12$20180828010551.zip");
 
            
 
 
        }
 
        private void progressBar1_Click(object sender, EventArgs e)
        {
 
        }
 
        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            
        }
 
        
        
        private List<string> b = new List<string>();      
        public void button3_Click(object sender, EventArgs e)
        {
            DirectoryInfo dir2 = new DirectoryInfo(@"C:\Users\Desktop\1\2");
            //Directory.GetFiles(dir2.ToString(), "1111.txt", SearchOption.AllDirectories).ToList().ForEach(f => listBox2.Items.Add(f));
            Directory.GetFiles(dir2.ToString(), "1111.txt", SearchOption.AllDirectories).ToList().ForEach(f => b.Add(f));
 
            DirectoryInfo dir = new DirectoryInfo(@"C:\Users\Desktop\1\2");
           // Directory.GetFiles(dir.ToString(), "*.zip", SearchOption.AllDirectories).ToList().ForEach(f => listBox1.Items.Add(f));
            Directory.GetFiles(dir.ToString(), "*.zip", SearchOption.AllDirectories).ToList().ForEach(f => a.Add(f));
 
 
 
                for (int c = 0; c < a.Count; c++) // цикл обработки названия файла
            {
                
                string[] fn = Directory.GetFiles(dir.ToString(), "*.zip");
                string[] fp = fn[c].Split('$');
                int li = fp[0].LastIndexOf("\\");
                string vs = fp[0].Substring(li + 1);
 
                //listBox1.Items.Add(vs);
            }
 
               
                for (int i = 0; i < b.Count; i++) // цикл обработки файла где лежат пароли и логины от ftp
                {                   
                    string[] allines = File.ReadAllLines(b[i]);
                    for (int j = 0; j < allines.Length; j++)
                    {
                        var lineparts = allines[j].Split('\t');
                        
                    }
 
                }
                
            
                
        }
 
        private void listBox2_SelectedIndexChanged(object sender, EventArgs e)
        {
 
        }
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.10.2018, 13:15
Ответы с готовыми решениями:

FTP Upload
Доброго времени суток! Не знаю в какую ветку писать, проблема общего характера, попробую здесь. И так. Мне нужно реализовать что-то...

Ftp upload
Пытаюсь загрузить файл на сервер с ограничением скорости. Вот код: Stream stream = request.GetRequestStream(); ...

Библиотека BytesRoad.Net.FTP.dll для работы с FTP: как реализовать докачку файла
Добрый день. Пишу программу, реализующую скачивание с фтп(суть - фтп клиент).Использую библиотеку стороннего разработчика -...

203
6 / 6 / 0
Регистрация: 23.12.2015
Сообщений: 227
19.10.2018, 13:33  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от V_Monomax Посмотреть сообщение
вот когда менять будем тогда и поменяем, а пока нам с чем-то работать надо?
Хорошо, логично )
0
19.10.2018, 14:12

Не по теме:

maksonech,
прошу прощения, куча дел, которые доделать надо, вы вечером сможете продолжить, и как на выходных?

0
6 / 6 / 0
Регистрация: 23.12.2015
Сообщений: 227
22.10.2018, 08:28  [ТС]
Цитата Сообщение от V_Monomax Посмотреть сообщение

Не по теме:

maksonech,
прошу прощения, куча дел, которые доделать надо, вы вечером сможете продолжить, и как на выходных?

Был, не дома, только сейчас появилось время)

Добавлено через 3 часа 30 минут
Цитата Сообщение от V_Monomax Посмотреть сообщение

Не по теме:

maksonech,
прошу прощения, куча дел, которые доделать надо, вы вечером сможете продолжить, и как на выходных?

За время отсутсвия накалякал вот это

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace ftptest3
{
    public partial class Form1 : Form
    {
        string Server;
        string Login;
        string ftpPassword;
 
        public Form1()
        {
            InitializeComponent();
            Server = "";
            Login = "";
            ftpPassword = "";
 
        }
 
 
 
        public void Upload(string filename)
 
        {
            FileInfo fileInf = new FileInfo(filename);
            string uri = "ftp://" + Server + "/" + fileInf.Name;
            FtpWebRequest reqFTP;
 
           
            reqFTP = (FtpWebRequest)WebRequest.Create(new Uri("ftp://" + Server + "/" + fileInf.Name));
 
        
            reqFTP.Credentials = new NetworkCredential(Login, ftpPassword);
 
 
            reqFTP.KeepAlive = true;
 
    
            reqFTP.Method = WebRequestMethods.Ftp.UploadFile;
 
            reqFTP.UseBinary = false;
 
         
            reqFTP.ContentLength = fileInf.Length;
 
          
            int buffLength = 2048;
            byte[] buff = new byte[buffLength];
            int contentLen;
 
    
            FileStream fs = fileInf.OpenRead();
 
            try
            {
           
                Stream strm = reqFTP.GetRequestStream();
 
              
                contentLen = fs.Read(buff, 0, buffLength);
 
                while (contentLen != 0)
                {
                   
                    strm.Write(buff, 0, contentLen);
                    contentLen = fs.Read(buff, 0, buffLength);
                }
 
      
                strm.Close();
                fs.Close();
                MessageBox.Show("Completed!");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Upload Error");
            }
        }
 
 
        
 
        public void LogToUpload(string FileNameLogToUpload)
        {
            FileInfo fileInf = new FileInfo(FileNameLogToUpload);
           
              var allines = File.ReadAllLines(FileNameLogToUpload);// цикл обработки файла где лежат пароли и логины от ftp
 
                for (int j = 0; j < allines.Length; j++)
                {
                   var  lineparts = allines[j].Split('\t');
 
                    
                 MessageBox.Show(lineparts[2]);
 
                }
         }
 
        public void FileNameRed(string FileNameToRed)
        {
            FileInfo fileInf = new FileInfo(FileNameToRed);
 
            DirectoryInfo dir = new DirectoryInfo(@"C:\Users\Desktop\1\2");
            //List<string> filesInf = Directory.GetFiles(dir.ToString(), "*.zip", SearchOption.AllDirectories).ToList();
 
            for (int c = 0; c < fileInf.Length; c++) // цикл обрабоки названия файла
            {
 
                string[] fn = Directory.GetFiles(dir.ToString(),"*.zip");
                string[] fp = fn[c].Split('$');
                int li = fp[0].LastIndexOf("\\");
                string vs = fp[0].Substring(li + 1);
 
                MessageBox.Show(vs);
            }
 
        }
 
 
 
        
        private void UploadBtn_Click(object sender, EventArgs e)
        {
            OpenFileDialog opFilDlg = new OpenFileDialog();
            if (opFilDlg.ShowDialog() == DialogResult.OK)
            {
               Upload(opFilDlg.FileName);
            }
        }
 
        private void testlog_Click(object sender, EventArgs e)
        {
            OpenFileDialog opFilDlg = new OpenFileDialog();
            if (opFilDlg.ShowDialog() == DialogResult.OK)
            {
                LogToUpload(opFilDlg.FileName);
            }
 
        }
 
        private void RedFileZip_Click(object sender, EventArgs e)
        {
            OpenFileDialog opFilDlg = new OpenFileDialog();
            if (opFilDlg.ShowDialog() == DialogResult.OK)
            {
                 FileNameRed(opFilDlg.FileName);
            }
           
        }
    }
}
не понимаю как их обьеднить, что бы работали вмест
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
22.10.2018, 09:43
Цитата Сообщение от maksonech Посмотреть сообщение
За время отсутсвия накалякал вот это
именно накалякал
Все это абсолютно не верно, и не отвечает поставленной задаче.
Возвращаемся к классу FTPSettings!
Там у нас есть три свойства с инициализацией по умолчанию:
Имя пользователя, пароль, и сервер. (Если добавили что-то еще, пока убирайте).
Теперь нам нужно настроить WebClient, теми настройками которые у нас есть на загрузку файла.
Для этого создадим в FTPSettings свойство WebClient - которое отдает уже настроенный клиент:
C#
1
2
3
4
5
6
7
8
WebClient FTPClient
{
  get
{
  var res = new WebClient();
   res.Credentials = new NetworkCredential(Login, Password);
}
}
собственно код готов, от вас только закомментировать и задокументировать!
1
6 / 6 / 0
Регистрация: 23.12.2015
Сообщений: 227
22.10.2018, 09:56  [ТС]
Цитата Сообщение от V_Monomax Посмотреть сообщение
именно накалякал
Все это абсолютно не верно, и не отвечает поставленной задаче.
Возвращаемся к классу FTPSettings!
Там у нас есть три свойства с инициализацией по умолчанию:
Имя пользователя, пароль, и сервер. (Если добавили что-то еще, пока убирайте).
Теперь нам нужно настроить WebClient, теми настройками которые у нас есть на загрузку файла.
Для этого создадим в FTPSettings свойство WebClient - которое отдает уже настроенный клиент:
C#
1
2
3
4
5
6
7
8
WebClient FTPClient
{
  get
{
  var res = new WebClient();
   res.Credentials = new NetworkCredential(Login, Password);
}
}
собственно код готов, от вас только закомментировать и задокументировать!
ругается на get - не все ветви кода возвращают значение
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class FTPSettings
        {
            public string Login { get; set; } = "login";
            public string Password { get; set; } = "password";
            public string Server { get; set; } = @"http://serverName.ru/";
          
            WebClient FTPClient
            {
                get
                {
                    var res = new WebClient();
                    res.Credentials = new NetworkCredential(Login, Password);
                }
 
 
             }
 
 
        }
Добавлено через 4 минуты
как-то так

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class FTPSettings
        {
            public string Login { get; set; } = "login";
            public string Password { get; set; } = "password";
            public string Server { get; set; } = @"http://serverName.ru/";
          
            WebClient FTPClient
            {
                get //считывание свойства
                {
                    var res = new WebClient();// инициализируем новый экземпляр, присваиваем го переменной res
                    res.Credentials = new NetworkCredential(Login, Password); //задаем учетные данные для коннекта
return res; // возвращает значение переменной res
                }
 
 
             }
 
 
        }
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
22.10.2018, 09:57
Цитата Сообщение от maksonech Посмотреть сообщение
ругается на get - не все ветви кода возвращают значение
правильно ругается, нужно дописать
C#
1
return res;
1
6 / 6 / 0
Регистрация: 23.12.2015
Сообщений: 227
22.10.2018, 10:00  [ТС]
исправил
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
22.10.2018, 10:01
Цитата Сообщение от maksonech Посмотреть сообщение
как-то так
а документацию кто делать будет за вас?
Для документирования, в студии предусмотрена автоматическая разметка, для документирования перед свойством, методом или полем, достаточно ввести "//" и студия автоматом создаст разметку, которую вам следует заполнить. Задокументируйте все свойства, учтите, чем точнее и правильнее документация, тем вам легче будет работать в последующем с вашим кодом!
1
6 / 6 / 0
Регистрация: 23.12.2015
Сообщений: 227
22.10.2018, 10:09  [ТС]
Извиняюсь, не сразу понял, что требуется, никогда раньше этого не делал.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 /// <summary>
        /// Создание класса для доступа на FTP сервер
        /// </summary>
        public class FTPSettings
        {
            public string Login { get; set; } = "login";
            public string Password { get; set; } = "password";
            public string Server { get; set; } = @"http://serverName.ru/";
          
            /// <summary>
            /// создание свойства FTPClient котороее отдает настронный клиент
            /// </summary>
            WebClient FTPClient
            {
              /// Считывание свойства
                get 
                {
                    /// инициализируем новый экземпляр, присваиваем го переменной res
                    var res = new WebClient();
                    ///задаем учетные данные для коннекта
                    res.Credentials = new NetworkCredential(Login, Password);
                    ///возвращает значение переменной res
                    return res;
                }
                
                
             }
 
 
        }
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
22.10.2018, 10:25
Цитата Сообщение от maksonech Посмотреть сообщение
Создание класса для доступа на FTP сервер
в корне не верно, так как класс содержит только настройки.
Цитата Сообщение от maksonech Посмотреть сообщение
C#
1
2
3
public string Login { get; set; } = "login"; 
public string Password { get; set; } = "password"; 
public string Server { get; set; } = @"http://serverName.ru/";
А это задокументировать религия не позволяет?
Цитата Сообщение от maksonech Посмотреть сообщение
C#
1
2
3
4
5
6
7
8
/// Считывание свойства 
get { 
/// инициализируем новый экземпляр, присваиваем го переменной 
res var res = new WebClient(); 
///задаем учетные данные для коннекта res.Credentials = new NetworkCredential(Login, Password); 
///возвращает значение переменной 
res return res;
 }
Внутри методов и свойств коментарии оставляются в особо важных случаях и по окончанию строки, внутри методов и свойств, документация излишняя!
C#
1
2
3
4
5
6
get // Считывание свойства
{
   var res = new WebClient();// инициализируем новый экземпляр, присваиваем го переменной res
   res.Credentials = new NetworkCredential(Login, Password);//задаем учетные данные для коннекта
   return res;//возвращает значение переменной res
}
Добавлено через 2 минуты
Цитата Сообщение от maksonech Посмотреть сообщение
Извиняюсь, не сразу понял, что требуется, никогда раньше этого не делал.
Правильно делать, всегда не рано учиться!
1
6 / 6 / 0
Регистрация: 23.12.2015
Сообщений: 227
22.10.2018, 10:28  [ТС]
Исправил
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/// <summary>
        /// Создание класса хранящего настройки доступа FTP сервера
        /// </summary>
        public class FTPSettings
        {
            public string Login { get; set; } = "login";
            public string Password { get; set; } = "password";
            public string Server { get; set; } = @"http://serverName.ru/";
          
            /// <summary>
            /// создание свойства FTPClient которое отдает настроенный клиент
            /// </summary>
            WebClient FTPClient
            {
              /// <summary>
              /// считывание свойства предающий Login & Password для проверки на подлинность
              /// </summary>
                get 
                {
                    var res = new WebClient();
                    res.Credentials = new NetworkCredential(Login, Password);
                    return res;
                }
                
             }
            
        }
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
22.10.2018, 10:51
Цитата Сообщение от maksonech Посмотреть сообщение
C#
1
2
3
public string Login { get; set; } = "login";
 public string Password { get; set; } = "password"; 
public string Server { get; set; } = @"http://serverName.ru/";
А ЗАДОКУМЕНТИРОВАТЬ ЗДЕСЬ РЕЛИГИЯ НЕ ПОЗВОЛЯЕТ???
1
6 / 6 / 0
Регистрация: 23.12.2015
Сообщений: 227
22.10.2018, 11:24  [ТС]
Так ?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/// <summary>
        /// Создание класса хранящего настройки доступа FTP сервера
        /// </summary>
        public class FTPSettings
        {
           /// <summary>
           /// инициализируем автоматически реализуемые свойства Login, Password,Server
           /// </summary>
            public string Login { get; set; } = "login";
            public string Password { get; set; } = "password";
            public string Server { get; set; } = @"http://serverName.ru/";
          
            /// <summary>
            /// создание свойства FTPClient котороее отдает настронный клиент
            /// </summary>
            WebClient FTPClient
            {
              /// <summary>
              /// считывание свойства предающго Login & Password для проверки на подленность
              /// </summary>
                get 
                {
                    var res = new WebClient();
                    res.Credentials = new NetworkCredential(Login, Password);
                    return res;
                }
                
             }
            
        }
Добавлено через 18 минут
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/// <summary>
        /// Создание класса хранящего настройки доступа FTP сервера
        /// </summary>
        public class FTPSettings
        {
           /// <summary>
           /// инициализируем автоматически рализуемые свойство Login
           /// </summary>
            public string Login { get; set; } = "login";
            /// <summary>
            /// инициализируем автоматически реализуемое свойство Password
            /// </summary>
            public string Password { get; set; } = "password";
            /// <summary>
            /// инициализируем автоматически реализуемое свойство Server
            /// </summary>
            public string Server { get; set; } = @"http://serverName.ru/";
          
            /// <summary>
            /// создание свойства FTPClient котороее отдает настронный клиент
            /// </summary>
            WebClient FTPClient
            {
              /// <summary>
              /// считывание свойства предающго Login & Password для проверки на подленность
              /// </summary>
                get 
                {
                    var res = new WebClient();
                    res.Credentials = new NetworkCredential(Login, Password);
                    return res;
                }
                
             }
            
        }
Забыл, исправил
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
22.10.2018, 11:35
Цитата Сообщение от maksonech Посмотреть сообщение
Так ?
нет, вот так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
           /// <summary>
           /// Логин пользователя для подключения к ФТП, значение по умолчанию "login"
           /// </summary>
            public string Login { get; set; } = "login";
 
           /// <summary>
           /// Пароль пользователя для подключения к ФТП, значение по умолчанию "password"
           /// </summary>
            public string Password { get; set; } = "password";
 
           /// <summary>
           /// Адресс сервера для подключения к ФТП, значение по умолчанию "http://serverName.ru/"
           /// </summary>
            public string Server { get; set; } = @"http://serverName.ru/";
Добавлено через 6 минут
Цитата Сообщение от maksonech Посмотреть сообщение
Забыл, исправил
Ок. Теперь у нас есть настройки, и настроенный клиент, вопрос: Как думаете какой следующий шаг?
1
6 / 6 / 0
Регистрация: 23.12.2015
Сообщений: 227
22.10.2018, 11:44  [ТС]
Сделать инициализацию файлов ?

Добавлено через 7 минут
Или класс загрузки данных на сервер
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
22.10.2018, 11:49
Цитата Сообщение от maksonech Посмотреть сообщение
Или класс загрузки данных на сервер
Правильно, теперь нам нужно создать класс ответственный за загрузку файлов. Как мы его назовем?
1
6 / 6 / 0
Регистрация: 23.12.2015
Сообщений: 227
22.10.2018, 11:50  [ТС]
FTPUpload
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
22.10.2018, 12:05
Цитата Сообщение от maksonech Посмотреть сообщение
FTPUpload
все-таки это работник, а не работа, потому давайте назовем его
FTPUploader?
1
6 / 6 / 0
Регистрация: 23.12.2015
Сообщений: 227
22.10.2018, 12:06  [ТС]
Цитата Сообщение от V_Monomax Посмотреть сообщение
все-таки это работник, а не работа, потому давайте назовем его
FTPUploader?
Согласен

C#
1
2
3
4
5
6
7
 /// <summary>
        /// Создание класса загрузки файлов на сервер
        /// </summary>
        public class FTPUploader
        {
 
        }
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
22.10.2018, 12:10
Цитата Сообщение от maksonech Посмотреть сообщение
Создание класса загрузки файлов на сервер
скорее класс для загрузки файлов на сервер.
Хорошо, как думаете, какой нам метод нужен, для решения вашей задачи?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.10.2018, 12:10

Как сделать Upload файла через FTP
Кто-нибудь знает, как запрограммировать передачу файла через FTP

Посоветуйте хороший FTP ActiveX или библиотеку с докачкой и Upload.
Посоветуйте хороший FTP ActiveX или библиотеку с докачкой и Upload. Можно платный.

Как перевести обращение к ftp-серверу в Интернете на домашний ftp-сервер?
Сервер LAMP поднимал , но интересует такой вопрос , сделать UPLOAD . Взять сервер на хостинге , а дома поднять HOME сервер . Смысл...

Используя системный FTP клиент командной строки загрузите файл на FTP-сервер
Задание: Используя системный FTP клиент командной строки загрузите файл на FTP-сервер. Как это сделать?

Не удалось подключиться к FTP: Rebex FTP/SSL does not support SFTP/SSH protocol
Добрый день. Подскажите как решить данную проблему? Не удалось подключиться к...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru