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 客户端,则必须在输入文本文件ascii之前显式键入。put同样的原则可能适用于此。

于 2009-02-12T18:44:31.850 回答