0

私が得ているエラーは Web 例外です。要求された 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();
        }
4

1 に答える 1

1

アップロードの宛先ファイル名を設定していないように見えるため、サーバーにはアップロードされたファイルに使用するファイル名がありません。

次のようなものを使用して、ソースファイル名と同じに設定できます。

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

ファイル名に特殊文字が含まれている可能性がある場合に備えて、もう少し堅牢な Uri の作成を行うには、Uriクラスを使用してビルドし、代わりにそれを WebRequest.Create に渡すことができます。

于 2014-07-25T12:11:55.553 に答える