FTP流请求流问题

时间:2014-07-25 11:59:51

标签: c# ftp system.net.webexception

我得到的错误是网络异常。请求的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 个答案:

答案 0 :(得分:1)

似乎您没有为上传设置目标文件名,因此服务器没有用于上传文件的文件名。

你可以使用类似的东西设置它与源文件名相同;

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

为了在文件名可能包含特殊字符的情况下稍微更健壮地创建Uri,您可以使用Uri类来构建它,并将其传递给WebRequest.Create。