3

カスタム Web サービスに 2 つのファイルを投稿しました。次に、このストリームを個別のファイルに読み込む必要があります。

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&lt;?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 に読み込む必要があります。

前もって感謝します。

4

3 に答える 3

4

これを試してみましたか:

Stream xmlStream = System.Web.HttpContext.Current.Request.Files[0].InputStream;
Stream txtStream = System.Web.HttpContext.Current.Request.Files[1].InputStream;
于 2013-02-08T11:01:46.403 に答える
0

次の関数を使用することをお勧めします。

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

基本的に、文字列をファイルにダンプします。

于 2013-02-08T11:02:45.427 に答える
0

次のコードを使用できます。

var memoryStream = new MemoryStream();
await HttpContext.Request.Body.CopyToAsync(memoryStream);
于 2022-02-18T21:11:38.823 に答える