Проблема с потоком запроса FTP-потока

Ошибка, которую я получаю, - это веб-исключение. Запрошенный URI недопустим для этой FTP-команды.

Я не уверен, как это исправить. У кого-нибудь есть идеи? Спасибо

private void SendFile(FileInfo file)
        {
            Console.WriteLine("ftp://" + ipAddressTextField.Text);
            // Get the object used to communicate with the server.
            string ftp = "ftp://" + ipAddressTextField.Text;
            FtpWebRequest request = (FtpWebRequest)WebRequest.Create(ftp);
            request.Method = WebRequestMethods.Ftp.UploadFile;

            // This example assumes the FTP site uses anonymous logon.
            request.Credentials = new NetworkCredential(usernameTextField.Text, passwordTextField.Text);


            // Copy the contents of the file to the request stream.
            byte[] fileContents = File.ReadAllBytes(file.FullName);
            request.ContentLength = fileContents.Length;

            Stream requestStream = request.GetRequestStream();
            requestStream.Write(fileContents, 0, fileContents.Length);
            requestStream.Close();

            FtpWebResponse response = (FtpWebResponse)request.GetResponse();

            Console.WriteLine("Upload File Complete, status {0}", response.StatusDescription);

            response.Close();
        }

person user3774466    schedule 25.07.2014    source источник


Ответы (1)


Кажется, вы не задаете имя файла назначения для загрузки, поэтому у сервера нет имени файла, которое можно использовать для загруженного файла.

Вы можете просто установить его таким же, как имя исходного файла, используя что-то вроде;

string ftp = "ftp://" + ipAddressTextField.Text + "/" + file.Name;
Console.WriteLine(ftp);

Чтобы сделать более надежное создание Uri в случае, если имена файлов могут содержать специальные символы, вы можете использовать файл Uri, чтобы создать его, и вместо этого передать его в WebRequest.Create.

person Joachim Isaksson    schedule 25.07.2014