Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在内存中创建要上载到服务器上的Xml文件_C#_.net_File Upload_Ftpwebrequest - Fatal编程技术网

C# 如何在内存中创建要上载到服务器上的Xml文件

C# 如何在内存中创建要上载到服务器上的Xml文件,c#,.net,file-upload,ftpwebrequest,C#,.net,File Upload,Ftpwebrequest,我想使用FTP将XML从客户端传输到某个服务器。我得到的是XmlElement对象。我知道我可以创建文件并将其上载到适当的位置 但是,我认为最好在内存中创建文件,以避免文件保存在本地磁盘上 有人能指导我如何做到这一点吗 我使用的是C4.0。您可以使用直接写入请求流,而无需先将文件保存在磁盘上 检索用于将数据上载到FTP服务器的流 返回XmlElement的字符串表示形式 string xml = myXmlElement.OuterXml; byte[] bytes = Encoding.UTF

我想使用FTP将XML从客户端传输到某个服务器。我得到的是XmlElement对象。我知道我可以创建文件并将其上载到适当的位置

但是,我认为最好在内存中创建文件,以避免文件保存在本地磁盘上

有人能指导我如何做到这一点吗

我使用的是C4.0。

您可以使用直接写入请求流,而无需先将文件保存在磁盘上

检索用于将数据上载到FTP服务器的流

返回XmlElement的字符串表示形式

string xml = myXmlElement.OuterXml;
byte[] bytes = Encoding.UTF8.GetBytes(xml);
Stream requestStream = request.GetRequestStream();
requestStream.Write(bytes, 0, bytes.Length);
requestStream.Close();
您可以使用直接写入请求流,而无需先将文件保存在磁盘上

检索用于将数据上载到FTP服务器的流

返回XmlElement的字符串表示形式

string xml = myXmlElement.OuterXml;
byte[] bytes = Encoding.UTF8.GetBytes(xml);
Stream requestStream = request.GetRequestStream();
requestStream.Write(bytes, 0, bytes.Length);
requestStream.Close();

Ling2Xml更易于使用:

stream = ftpRequest.GetRequestStream();

XElement xDoc = new XElement("Root",
                    new XElement("Item1", "some text"),
                    new XElement("Item2", new XAttribute("id", 666))
                    );

xDoc.Save(stream);
或者可以使用序列化


Ling2Xml更易于使用:

stream = ftpRequest.GetRequestStream();

XElement xDoc = new XElement("Root",
                    new XElement("Item1", "some text"),
                    new XElement("Item2", new XAttribute("id", 666))
                    );

xDoc.Save(stream);
或者可以使用序列化


@L.B.给出了使用XDocument的提示,解决了我的问题

以下是解决方案:

编写一段代码,用XmlElement对象创建XDocument对象

然后像这样使用FTP的流

Stream ftpstream = ((FtpWebRequest)WebRequest.Create(path)).GetRequestStream();    
 doc.Save(ftpstream);

ftpstream.Close();

@L.B.给出了使用XDocument的提示,解决了我的问题

以下是解决方案:

编写一段代码,用XmlElement对象创建XDocument对象

然后像这样使用FTP的流

Stream ftpstream = ((FtpWebRequest)WebRequest.Create(path)).GetRequestStream();    
 doc.Save(ftpstream);

ftpstream.Close();

@Erirc J.:FtpWebRequest.Write方法的第一个参数的类型为byte[]。它不是XmlElement的OuterXml属性返回的字符串类型。因此,您的代码将无法工作。@Erirc J.:FtpWebRequest.Write方法的第一个参数的类型为byte[]。它不是XmlElement的OuterXml属性返回的字符串类型。因此,您的代码将无法工作。