Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.58/40: Рейтинг темы: голосов - 40, средняя оценка - 4.58
0 / 0 / 0
Регистрация: 30.08.2013
Сообщений: 33

Загрузка файла с FTP сервера

26.09.2013, 18:28. Показов 8344. Ответов 35
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.Подскажите пожалуйста как реализовать скачивание файла с FTP-сервера (FTP сайта)?
Нужно задать логин,пароль,порт и место куда загрузить файл.
Заранее спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.09.2013, 18:28
Ответы с готовыми решениями:

Загрузка файла с FTP с отображением прогресса
Всем привет. Задача: Есть форма. На ней два элемента - прогресс бар и кнопка. При нажатии на кнопку, должна начаться закачка файла...

Загрузка файла на FTP через php
Здравствуйте, существует следующая проблема, при написании программы на c# которая бы отправляла файл на сервер с компьютера, приходиться...

Отказанно в доступе для сохранения файла с FTP-сервера
Пишу клиент к ФТП серверу Вожусь с Либом фтп клиента от ByteRoadFtpExample. Там есть функция getFile() Вот как я реализовал свою...

35
 Аватар для yariktst
27 / 27 / 1
Регистрация: 06.10.2012
Сообщений: 58
26.09.2013, 18:35
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
class FtpDownUpl
    {
        /// <summary>
        /// Upload a file using FTP
        /// </summary>
        /// <param name="FTPServer">The server to upload to</param>
        /// <param name="remotePath">The remote path in the server</param>
        /// <param name="fileToUpload">The path to the local uploaded file</param>
        /// <param name="user">User to log onto the FTP server</param>
        /// <param name="password">Password to log onto the FTP server</param>
        /// <returns>The status of the upload</returns>
        public string Upload(string FTPServer, string remotePath, string fileToUpload, string user, string password)
        {
            try
            {
                //Get FTP web resquest object.
                FtpWebRequest request = FtpWebRequest.Create(new Uri(@"ftp://" + FTPServer + @"/" + remotePath + @"/" + Path.GetFileName(fileToUpload))) as FtpWebRequest;
                request.UseBinary = true;
                request.KeepAlive = false;
                request.Method = WebRequestMethods.Ftp.UploadFile;
                if (!string.IsNullOrEmpty(user) && !string.IsNullOrEmpty(password))
                    request.Credentials = new NetworkCredential(user, password);
 
                //Get physical file
                FileInfo fi = new FileInfo(fileToUpload);
                Byte[] contents = new Byte[fi.Length];
 
                //Read file
                FileStream fs = fi.OpenRead();
                fs.Read(contents, 0, Convert.ToInt32(fi.Length));
                fs.Close();
 
                //Write file contents to FTP server
                Stream rs = request.GetRequestStream();
                rs.Write(contents, 0, Convert.ToInt32(fi.Length));
                rs.Close();
 
                FtpWebResponse response = request.GetResponse() as FtpWebResponse;
                string statusDescription = response.StatusDescription;
                response.Close();
                return statusDescription;
            }
            catch (Exception e)
            {
                throw new Exception("Error uploading to URL " + "ftp://" + FTPServer + @"/" + remotePath + @"/" + Path.GetFileName(fileToUpload), e);
            }
        }
 
        /// <summary>
        /// Download a file using FTP
        /// </summary>
        /// <param name="FTPServer">The server to download from</param>
        /// <param name="remotePath">The remote path in the server</param>
        /// <param name="fileNameToDownload">The remote file name</param>
        /// <param name="saveToLocalPath">The path to the folder to download to</param>
        /// <param name="user">User to log onto the FTP server</param>
        /// <param name="password">Password to log onto the FTP server</param>
        /// <returns>The status of the download</returns>
        public string Download(string FTPServer, string remotePath, string fileNameToDownload, string saveToLocalPath, string user, string password)
        {
            try
            {
                //Get FTP web resquest object.
                FtpWebRequest request = FtpWebRequest.Create(new Uri(@"ftp://" + FTPServer + @"/" + remotePath + @"/" + fileNameToDownload)) as FtpWebRequest;
                request.UseBinary = true;
                request.KeepAlive = false;
                request.Method = WebRequestMethods.Ftp.DownloadFile;
                if (!string.IsNullOrEmpty(user) && !string.IsNullOrEmpty(password))
                    request.Credentials = new NetworkCredential(user, password);
 
                FtpWebResponse response = request.GetResponse() as FtpWebResponse;
                Stream responseStream = response.GetResponseStream();
                FileStream outputStream = new FileStream(saveToLocalPath + "\\" + fileNameToDownload, FileMode.Create);
 
                int bufferSize = 1024;
                int readCount;
                byte[] buffer = new byte[bufferSize];
 
                readCount = responseStream.Read(buffer, 0, bufferSize);
                while (readCount > 0)
                {
                    outputStream.Write(buffer, 0, readCount);
                    readCount = responseStream.Read(buffer, 0, bufferSize);
                }
                string statusDescription = response.StatusDescription;
                responseStream.Close();
                outputStream.Close();
                response.Close();
                return statusDescription;
            }
            catch (Exception e)
            {
                throw new Exception("Error downloading from URL " + "ftp://" + FTPServer + @"/" + remotePath + @"/" + fileNameToDownload, e);
            }
        }
 
 
    }
скачка и загрузка через фтп, из личной коллекции
3
0 / 0 / 0
Регистрация: 30.08.2013
Сообщений: 33
26.09.2013, 18:38  [ТС]
Немного глупых вопросов:
Это класс?Если да,то как подключить его что-бы он выполнялся при нажатии кнопки?
0
 Аватар для yariktst
27 / 27 / 1
Регистрация: 06.10.2012
Сообщений: 58
26.09.2013, 18:43
В своем проекте создаете файл .cs и Вставляете содержимое класса который вам кинул, после этого создайте экземпляр класса того что создали там где будете использовать, и вызывайте методы этого класса
1
0 / 0 / 0
Регистрация: 30.08.2013
Сообщений: 33
26.09.2013, 18:47  [ТС]
Цитата Сообщение от yariktst Посмотреть сообщение
В своем проекте создаете файл .cs и Вставляете содержимое класса который вам кинул, после этого создайте экземпляр класса того что создали там где будете использовать, и вызывайте методы этого класса
Можно подробнее?
Как например вызвать функцию загрузки?
0
 Аватар для yariktst
27 / 27 / 1
Регистрация: 06.10.2012
Сообщений: 58
26.09.2013, 19:03
Создаем файл, как на фото, туда содержимое.
А код:
C#
1
2
3
4
5
6
7
8
9
     public partial class MainForm : Form
     {
         FtpDownUpl ftp = new FtpDownUpl();
         
         private void btn_Click(object sender, EventArgs e)
         {
             ftp.Download("site.com", "remotePath", "fileNameToDownload", "saveToLocalPath", "user", "password");
         }
      }
должно работать, только там свои значения подставлять надо, + на время скачки подвиснет пока не скачает, ну это уже другая история
Изображения
 
1
0 / 0 / 0
Регистрация: 30.08.2013
Сообщений: 33
26.09.2013, 21:16  [ТС]
Вроде вписываю все значение корректные,скачивает,но скачивает не корректно
0
 Аватар для yariktst
27 / 27 / 1
Регистрация: 06.10.2012
Сообщений: 58
26.09.2013, 21:18
Цитата Сообщение от StH_Randall Посмотреть сообщение
но скачивает не корректно
это как?
0
0 / 0 / 0
Регистрация: 30.08.2013
Сообщений: 33
26.09.2013, 21:22  [ТС]
Цитата Сообщение от yariktst Посмотреть сообщение
это как?
У меня архив,он скачивает не корректный файл,расширение архивное,но размер отличается от "эталона" на ftp и его не возможно открыть.

Значения нужно вписывать в колонку <summary>?
0
 Аватар для yariktst
27 / 27 / 1
Регистрация: 06.10.2012
Сообщений: 58
26.09.2013, 21:28
не представляю что ты там мог нахимичить, нет самари не трогай, это комментарии. А архив распаковать можно? Что в нем?
0
0 / 0 / 0
Регистрация: 30.08.2013
Сообщений: 33
26.09.2013, 21:32  [ТС]
Цитата Сообщение от yariktst Посмотреть сообщение
не представляю что ты там мог нахимичить, нет самари не трогай, это комментарии. А архив распаковать можно? Что в нем?
Вообщем я делаю функцию "проверка целостности" В программе указал "истинные" размеры файла и если значения(размеры) не совпадают,то программа скачивает с ftp "исправный" файл.
Это кусок от игры(без него запуск игры не возможен).
0
 Аватар для yariktst
27 / 27 / 1
Регистрация: 06.10.2012
Сообщений: 58
26.09.2013, 21:35
мне просто интересно докачался ли файл, по размеру можно судить что нет, только об этом ты ничего не упомянул. И то что происходит слет закачки не понятно у меня работает.
0
0 / 0 / 0
Регистрация: 30.08.2013
Сообщений: 33
26.09.2013, 21:38  [ТС]
Цитата Сообщение от yariktst Посмотреть сообщение
мне просто интересно докачался ли файл, по размеру можно судить что нет, только об этом ты ничего не упомянул. И то что происходит слет закачки не понятно у меня работает.
С ftp архив нормально открывается,но стоит его скачать,то он имеет не известный формат и размер на 10кб больше.
0
 Аватар для yariktst
27 / 27 / 1
Регистрация: 06.10.2012
Сообщений: 58
26.09.2013, 21:39
скинь сюда свой код, сайт можешь затереть.
0
0 / 0 / 0
Регистрация: 30.08.2013
Сообщений: 33
26.09.2013, 21:44  [ТС]
Цитата Сообщение от yariktst Посмотреть сообщение
скинь сюда свой код, сайт можешь затереть.
Я одного не понял(я дикий тормоз),куда вписывать настройки?
Я вписывал сюда:
C#
1
2
3
4
5
6
7
/// <param name="FTPServer">The server to download from</param>
        /// <param name="remotePath">The remote path in the server</param>
        /// <param name="fileNameToDownload">The remote file name</param>
        /// <param name="saveToLocalPath">The path to the folder to download to</param>
        /// <param name="user">User to log onto the FTP server</param>
        /// <param name="password">Password to log onto the FTP server</param>
        /// <returns>The status of the download</returns>
0
 Аватар для yariktst
27 / 27 / 1
Регистрация: 06.10.2012
Сообщений: 58
26.09.2013, 21:47
Цитата Сообщение от yariktst Посмотреть сообщение
ftp.Download("site.com", "remotePath", "fileNameToDownload", "saveToLocalPath", "user", "password");
сюда, а ты вписывал в комментарии, т.е. это описание параметров которые в методе тебе надо заполнить, каждый для чего предназначен.
0
0 / 0 / 0
Регистрация: 30.08.2013
Сообщений: 33
26.09.2013, 21:51  [ТС]
Цитата Сообщение от yariktst Посмотреть сообщение
сюда, а ты вписывал в комментарии, т.е. это описание параметров которые в методе тебе надо заполнить, каждый для чего предназначен.
Можешь мне настроить класс?
Данные скинул тебе в ЛС
Лайками задарю.
0
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9670 / 4823 / 762
Регистрация: 17.04.2012
Сообщений: 9,661
Записей в блоге: 14
26.09.2013, 22:13
StH_Randall, все обсуждение и данные помещаем в тему.
0
0 / 0 / 0
Регистрация: 30.08.2013
Сообщений: 33
26.09.2013, 22:17  [ТС]
Данные для подключения

IP FTP:83.69.230.9
Логин: vh153888
Порт : 21

Оформил строчку так:
C#
1
ftp.Download("83.69.230.9", "/www", "kje32.jar", "C:\\", "vh153888", "Тут пароль");
Пишет что невозможно подключится,все данные проверял.
0
 Аватар для yariktst
27 / 27 / 1
Регистрация: 06.10.2012
Сообщений: 58
26.09.2013, 22:41
ну это похоже на то что у тебя нет прав доступа, поэтому лучше выбери другой диск, D например.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.09.2013, 22:41
Помогаю со студенческими работами здесь

Загрузка файла с сервера и запуск без сохранения
Нужно реализовать загрузку с сервера и запуск файла без сохранения, с обычной загрузкой в папку с программой ознакомлен.

Чтение данных с ftp сервера
Доброго всем дня. Помогите пожалуйста подскажите как прочитать данные с сервера, есть адрес http:/101.166.128.157:85/webpcs/server. Я...

Скачивание каталога с FTP сервера
Доброго времени суток. Работаю с FTP сервером в C# при помощи библиотеки BytesRoad.Net.Ftp. Появилась необходимость скачивать ВЕСЬ каталог...

Загрузка файлов по FTP-протоколу
Подскажите, пожалуйста, как реализовать загрузку файлов на свой сервер по протоколу FTP? У меня есть файл, выбранный в openFileDialog1...

Сканирование собственного ftp сервера на новые файлы
Помогите пожалуйста. Написать программу для сканирования собственного ftp сервера на новые файлы и запись их в базу данных. class...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru