Web Services 从流读取文件

kxkpmulp  于 2022-11-15  发布在  其他
关注(0)|答案(3)|浏览(165)

我发布了两个文件到我的自定义Web服务。现在我需要将此流读取到单独的文件中。
我已经发送了一个XML和一个文本文件,在Web服务中,我看到它如下所示:

StreamReader stream = new StreamReader(HttpContext.Current.Request.InputStream);
string xmls = stream.ReadToEnd();

我得到如下字符串形式的流(我还添加了边界):

"\r\n------------------------------8cfd42d26566ff0\r\nContent-Disposition: form-data; name=\"uplTheFile\"; filename=\"E:\\AJ\\Demo\\EktronSite2\\XMLFiles\\XMLFile.xml\"\r\n Content-Type: application/octet-stream\r\n\r\n<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<note xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns=\"http://tempuri.org/XMLFile.xsd\">\r\n  <ID>101</ID>\r\n</note>\r\n------------------------------8cfd42d26566ff0\r\nContent-Disposition: form-data; name=\"uplTheFile\"; filename=\"C:\\TEMP\\log.txt\"\r\n Content-Type: application/octet-stream\r\n\r\nABCDEFGHIJKLMNOPQRSTUVWXYZ\r\n------------------------------8cfd42d26566ff0\r\n"

我需要将相同的内容读入不同的文件。例如,我需要将XML读入XmlDocument类型,将文本读入. docx。
先谢谢你。

jdgnovmf

jdgnovmf1#

你试试这个:

Stream xmlStream = System.Web.HttpContext.Current.Request.Files[0].InputStream;
Stream txtStream = System.Web.HttpContext.Current.Request.Files[1].InputStream;
mm5n2pyu

mm5n2pyu2#

我建议使用以下功能:

System.IO.File.WriteAllText(string path, string contents)

它基本上会将字符串转储到文件中。

4szc88ey

4szc88ey3#

您可以使用以下代码:

var memoryStream = new MemoryStream();
await HttpContext.Request.Body.CopyToAsync(memoryStream);

相关问题