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

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

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

Доброго времени суток! На фтп имеется папка images, в которую надо загрузить файл fname. fname выбирается пользователем (код под спойлером)
 Stream myStream = null;
            OpenFileDialog openFileDialog1 = new OpenFileDialog();
 
            openFileDialog1.InitialDirectory = "d:";
            openFileDialog1.Filter = "JPEG (*.jpg;*.jpeg;.*jpe;,*.jfif)|*.jpg";
            openFileDialog1.FilterIndex = 2;
            openFileDialog1.RestoreDirectory = true;
 
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    if ((myStream = openFileDialog1.OpenFile()) != null)
                    {
                        using (myStream)
                        {
                            label1.Text = Convert.ToString(openFileDialog1.FileName);
                            a = label1.Text;

                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message);
                }
                openFileDialog1.Dispose();
                uploadFTP(a);
в конце вызывается функция
uploadFTP(a);
вот код этой функции
 void uploadFTP(string fname)
 {
                string ftpUserID = "user";
                string ftpPassword = "password";
                FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftpadress/image/" + fname);
                
                request.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
                request.Method = WebRequestMethods.Ftp.UploadFileWithUniqueName;
                FileStream fs = new FileStream(fname, FileMode.Open);
                byte[] fileContents = new byte[fs.Length];
                fs.Read(fileContents, 0, fileContents.Length);
                fs.Close();
                request.ContentLength = fileContents.Length;

                Stream requestStream = request.GetRequestStream();
                requestStream.Write(fileContents, 0, fileContents.Length);
                requestStream.Close();
                FtpWebResponse response = (FtpWebResponse)request.GetResponse();
                
                response.Close();
}
При компиляции происходит следующая ошибка(добавил в Вложения) в 14 строке
Stream requestStream = request.GetRequestStream();
ну и собственно вопрос, из-за чего эта ошибка и как это исправить

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

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

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


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

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

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