Загрузка файла на FTP - C#

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток! На фтп имеется папка images, в которую надо загрузить файл fname. fname выбирается пользователем (код под спойлером)
Листинг программы
  1. Stream myStream = null;
  2. OpenFileDialog openFileDialog1 = new OpenFileDialog();
  3. openFileDialog1.InitialDirectory = "d:";
  4. openFileDialog1.Filter = "JPEG (*.jpg;*.jpeg;.*jpe;,*.jfif)|*.jpg";
  5. openFileDialog1.FilterIndex = 2;
  6. openFileDialog1.RestoreDirectory = true;
  7. if (openFileDialog1.ShowDialog() == DialogResult.OK)
  8. {
  9. try
  10. {
  11. if ((myStream = openFileDialog1.OpenFile()) != null)
  12. {
  13. using (myStream)
  14. {
  15. label1.Text = Convert.ToString(openFileDialog1.FileName);
  16. a = label1.Text;
  17.  
  18. }
  19. }
  20. }
  21. catch (Exception ex)
  22. {
  23. MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message);
  24. }
  25. openFileDialog1.Dispose();
  26. uploadFTP(a);
в конце вызывается функция
Листинг программы
  1. uploadFTP(a);
вот код этой функции
Листинг программы
  1. void uploadFTP(string fname)
  2. {
  3. string ftpUserID = "user";
  4. string ftpPassword = "password";
  5. FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftpadress/image/" + fname);
  6. request.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
  7. request.Method = WebRequestMethods.Ftp.UploadFileWithUniqueName;
  8. FileStream fs = new FileStream(fname, FileMode.Open);
  9. byte[] fileContents = new byte[fs.Length];
  10. fs.Read(fileContents, 0, fileContents.Length);
  11. fs.Close();
  12. request.ContentLength = fileContents.Length;
  13.  
  14. Stream requestStream = request.GetRequestStream();
  15. requestStream.Write(fileContents, 0, fileContents.Length);
  16. requestStream.Close();
  17. FtpWebResponse response = (FtpWebResponse)request.GetResponse();
  18. response.Close();
  19. }
При компиляции происходит следующая ошибка(добавил в Вложения) в 14 строке
Листинг программы
  1. Stream requestStream = request.GetRequestStream();
ну и собственно вопрос, из-за чего эта ошибка и как это исправить

Решение задачи: «Загрузка файла на FTP»

textual
Листинг программы
  1.  
  2.             byte[] fileData = File.ReadAllBytes(path); //где path - путь к файлу
  3.             request.ContentLength = fileData.Length;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.385 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут