Проблема с потоком запросов 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();
}
1 ответ
Кажется, вы не устанавливаете имя файла назначения для загрузки, поэтому у сервера нет имени файла, который можно использовать для загруженного файла.
Вы можете просто установить его так же, как имя исходного файла, используя что-то вроде;
string ftp = "ftp://" + ipAddressTextField.Text + "/" + file.Name;
Console.WriteLine(ftp);
Чтобы сделать чуть более надежное создание Uri на случай, если имена файлов могут иметь специальные символы, вы можете использовать класс Uri для его создания и передать его в WebRequest.Create.