2

これは非常に簡単で、アップロードは機能します。しかし、FTP サーバーでアップロードされたファイルを開くと、[][][][] のような奇妙な文字であるバイナリ データと、適切なファイル サイズが表示されます。このファイルが XML であることを示す属性またはヘッダーを追加するにはどうすればよいですか?

    public bool ProcessBatch(MemoryStream memStream)
    {
        bool result = true;
        FTPaddress = DistributionResources.ftpServer;
        CompleteFTPPath = DistributionResources.ftpPath;

        request = (FtpWebRequest)FtpWebRequest.Create(FTPaddress + CompleteFTPPath);
        request.Credentials = new NetworkCredential("username", "password");
        request.Method = WebRequestMethods.Ftp.UploadFile;
        request.UsePassive = true;
        request.UseBinary = true;
        request.KeepAlive = false;

        try
        {

            byte[] buffer = new byte[memStream.Length];

            memStream.Read(buffer, 0, buffer.Length);
            memStream.Close();

            using (Stream reqStream = request.GetRequestStream())
            {
                reqStream.Write(buffer, 0, buffer.Length);
            }

            //Gets the FtpWebResponse of the uploading operation
            response = (FtpWebResponse)request.GetResponse();
            Console.WriteLine(response.StatusDescription); //Display response

        }
        catch(Exception ex)
        {
            result = false;
        }

        return result;
    }

どうもありがとうございました

4

1 に答える 1

3

使わないでみるrequest.UseBinary = true

つまり、 を使用しますrequest.UseBinary = false。そうしないと、コンテンツがバイナリ データとしてアップロードされるため、サーバー上でそのように表示される可能性があります。

たとえば、Windows でコマンド ライン FTP クライアントを使用する場合、テキスト ファイルを ing するascii前に、明示的に入力する必要があります。putここでも同じ原則が適用される可能性があります。

于 2009-02-12T18:44:31.850 に答える