C# 将多个文件发送到Web服务,并将其读入Web服务中的单独文件

C# 将多个文件发送到Web服务,并将其读入Web服务中的单独文件,c#,web-services,post,asmx,C#,Web Services,Post,Asmx,我想用c语言编写一个web服务,它从流中接收多个文件,将它们读入不同的文件,然后对这些文件执行一些询问(例如,我需要发送的文件是XML): 这就是我到目前为止所做的: 1) 通过以下方法发送文件,这将创建一个请求并将其发布到web服务: public void postMultipleFiles() { string url = "<the url of the web service>"; HttpWebRequest httpWebRequ

我想用c语言编写一个web服务,它从流中接收多个文件,将它们读入不同的文件,然后对这些文件执行一些询问(例如,我需要发送的文件是XML):

这就是我到目前为止所做的:

1) 通过以下方法发送文件,这将创建一个请求并将其发布到web服务:

public void postMultipleFiles()
    {
        string url = "<the url of the web service>";
        HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
        httpWebRequest.Method = "POST";
        httpWebRequest.KeepAlive = true;
        httpWebRequest.ContentType = "text/xml; encoding='utf-8'";
        Stream memStream = new MemoryStream();
        string[] files = { @"<file1 location>", @"<file2 location>" };
        /*AJ*/
        foreach (string file in files)
        {
            FileStream fileStream = new FileStream(file, FileMode.Open, FileAccess.Read);
            byte[] buffer = new byte[1024];
            int bytesRead = 0;
            while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) != 0)
            {
                memStream.Write(buffer, 0, bytesRead);
            }
            fileStream.Close();
        }
        httpWebRequest.ContentLength = memStream.Length;
        Stream requestStream = httpWebRequest.GetRequestStream();
        memStream.Position = 0;
        byte[] tempBuffer = new byte[memStream.Length];
        memStream.Read(tempBuffer, 0, tempBuffer.Length);
        memStream.Close();
        requestStream.Write(tempBuffer, 0, tempBuffer.Length);
        requestStream.Close();
        try
        {
            WebResponse webResponse = httpWebRequest.GetResponse();
            Stream stream = webResponse.GetResponseStream();
            StreamReader reader = new StreamReader(stream);
            response.InnerHtml = reader.ReadToEnd();
            //Response.Write(reader.ReadToEnd());
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.ToString());
        }
        httpWebRequest = null;
    }
但这会将文件读入一个字符串,一个接一个地追加

如何将其保存到两个不同的XML文件中


提前感谢….

ASMX web服务几乎已经过时。您应该改用WCF。除此之外,WCF实际上支持文件传输和流式传输。您不需要使用带边界的多部分表单吗?比如这里:@Tim:是的,我现在添加了内容类型及其属性。但我如何将其读入web服务中接收这些文件的不同文件中呢
[WebMethod]
    public string MultiFilePost()
    {
        string xmls = "";
        if (HttpContext.Current.Request.InputStream != null)
        { 
            StreamReader stream = new StreamReader(HttpContext.Current.Request.InputStream);
            xmls = stream.ReadToEnd(); // added to view content of input stream
            xmls = xmls.Replace("\r\n", "").Replace("\r", "").Replace("\n", "");
        }
        return xmls;
    }