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

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

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

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

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

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

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

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

35
27 / 27 / 1
Регистрация: 06.10.2012
Сообщений: 58
26.09.2013, 18:35 2
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  [ТС] 3
Немного глупых вопросов:
Это класс?Если да,то как подключить его что-бы он выполнялся при нажатии кнопки?
0
27 / 27 / 1
Регистрация: 06.10.2012
Сообщений: 58
26.09.2013, 18:43 4
В своем проекте создаете файл .cs и Вставляете содержимое класса который вам кинул, после этого создайте экземпляр класса того что создали там где будете использовать, и вызывайте методы этого класса
1
0 / 0 / 0
Регистрация: 30.08.2013
Сообщений: 33
26.09.2013, 18:47  [ТС] 5
Цитата Сообщение от yariktst Посмотреть сообщение
В своем проекте создаете файл .cs и Вставляете содержимое класса который вам кинул, после этого создайте экземпляр класса того что создали там где будете использовать, и вызывайте методы этого класса
Можно подробнее?
Как например вызвать функцию загрузки?
0
27 / 27 / 1
Регистрация: 06.10.2012
Сообщений: 58
26.09.2013, 19:03 6
Создаем файл, как на фото, туда содержимое.
А код:
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  [ТС] 7
Вроде вписываю все значение корректные,скачивает,но скачивает не корректно
0
27 / 27 / 1
Регистрация: 06.10.2012
Сообщений: 58
26.09.2013, 21:18 8
Цитата Сообщение от StH_Randall Посмотреть сообщение
но скачивает не корректно
это как?
0
0 / 0 / 0
Регистрация: 30.08.2013
Сообщений: 33
26.09.2013, 21:22  [ТС] 9
Цитата Сообщение от yariktst Посмотреть сообщение
это как?
У меня архив,он скачивает не корректный файл,расширение архивное,но размер отличается от "эталона" на ftp и его не возможно открыть.

Значения нужно вписывать в колонку <summary>?
0
27 / 27 / 1
Регистрация: 06.10.2012
Сообщений: 58
26.09.2013, 21:28 10
не представляю что ты там мог нахимичить, нет самари не трогай, это комментарии. А архив распаковать можно? Что в нем?
0
0 / 0 / 0
Регистрация: 30.08.2013
Сообщений: 33
26.09.2013, 21:32  [ТС] 11
Цитата Сообщение от yariktst Посмотреть сообщение
не представляю что ты там мог нахимичить, нет самари не трогай, это комментарии. А архив распаковать можно? Что в нем?
Вообщем я делаю функцию "проверка целостности" В программе указал "истинные" размеры файла и если значения(размеры) не совпадают,то программа скачивает с ftp "исправный" файл.
Это кусок от игры(без него запуск игры не возможен).
0
27 / 27 / 1
Регистрация: 06.10.2012
Сообщений: 58
26.09.2013, 21:35 12
мне просто интересно докачался ли файл, по размеру можно судить что нет, только об этом ты ничего не упомянул. И то что происходит слет закачки не понятно у меня работает.
0
0 / 0 / 0
Регистрация: 30.08.2013
Сообщений: 33
26.09.2013, 21:38  [ТС] 13
Цитата Сообщение от yariktst Посмотреть сообщение
мне просто интересно докачался ли файл, по размеру можно судить что нет, только об этом ты ничего не упомянул. И то что происходит слет закачки не понятно у меня работает.
С ftp архив нормально открывается,но стоит его скачать,то он имеет не известный формат и размер на 10кб больше.
0
27 / 27 / 1
Регистрация: 06.10.2012
Сообщений: 58
26.09.2013, 21:39 14
скинь сюда свой код, сайт можешь затереть.
0
0 / 0 / 0
Регистрация: 30.08.2013
Сообщений: 33
26.09.2013, 21:44  [ТС] 15
Цитата Сообщение от 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
27 / 27 / 1
Регистрация: 06.10.2012
Сообщений: 58
26.09.2013, 21:47 16
Цитата Сообщение от yariktst Посмотреть сообщение
ftp.Download("site.com", "remotePath", "fileNameToDownload", "saveToLocalPath", "user", "password");
сюда, а ты вписывал в комментарии, т.е. это описание параметров которые в методе тебе надо заполнить, каждый для чего предназначен.
0
0 / 0 / 0
Регистрация: 30.08.2013
Сообщений: 33
26.09.2013, 21:51  [ТС] 17
Цитата Сообщение от yariktst Посмотреть сообщение
сюда, а ты вписывал в комментарии, т.е. это описание параметров которые в методе тебе надо заполнить, каждый для чего предназначен.
Можешь мне настроить класс?
Данные скинул тебе в ЛС
Лайками задарю.
0
Администратор
Эксперт .NET
9602 / 4744 / 761
Регистрация: 17.04.2012
Сообщений: 9,592
Записей в блоге: 14
26.09.2013, 22:13 18
StH_Randall, все обсуждение и данные помещаем в тему.
0
0 / 0 / 0
Регистрация: 30.08.2013
Сообщений: 33
26.09.2013, 22:17  [ТС] 19
Данные для подключения

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

Оформил строчку так:
C#
1
ftp.Download("83.69.230.9", "/www", "kje32.jar", "C:\\", "vh153888", "Тут пароль");
Пишет что невозможно подключится,все данные проверял.
0
27 / 27 / 1
Регистрация: 06.10.2012
Сообщений: 58
26.09.2013, 22:41 20
ну это похоже на то что у тебя нет прав доступа, поэтому лучше выбери другой диск, D например.
0
26.09.2013, 22:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.09.2013, 22:41
Помогаю со студенческими работами здесь

Чтение данных с ftp сервера
Доброго всем дня. Помогите пожалуйста подскажите как прочитать данные с сервера, есть адрес...

Скачивание каталога с FTP сервера
Доброго времени суток. Работаю с FTP сервером в C# при помощи библиотеки BytesRoad.Net.Ftp....

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

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru