C# 如何在内存中创建要上载到服务器上的Xml文件
我想使用FTP将XML从客户端传输到某个服务器。我得到的是XmlElement对象。我知道我可以创建文件并将其上载到适当的位置 但是,我认为最好在内存中创建文件,以避免文件保存在本地磁盘上 有人能指导我如何做到这一点吗 我使用的是C4.0。您可以使用直接写入请求流,而无需先将文件保存在磁盘上 检索用于将数据上载到FTP服务器的流 返回XmlElement的字符串表示形式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
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属性返回的字符串类型。因此,您的代码将无法工作。