我想下载我在用户系统上使用 XmlWriter.Create() 创建的 C# 文件 XML
I want to download XML file in C# which I created using XmlWriter.Create() on user's system
我有一种创建 XML 文件并将其保存到所需文件路径的方法。它工作得很好。但我面临的问题是我必须允许用户下载此文件,但它会下载到给定文件路径上的服务器,而不是用户系统上。
我有以下相同的代码
var dateString1 = DateTime.Now.ToString("yyyyMMddHHmmss");
XmlWriterSettings settings = new XmlWriterSettings
{
Indent = true,
IndentChars = (" "),
ConformanceLevel = ConformanceLevel.Fragment,
CloseOutput = true,
OmitXmlDeclaration = true
};
using (XmlWriter writer = XmlWriter.Create(filePath + "bill" + dateString1 + ".xml", settings))
{
writer.WriteStartElement("HEADER");
.......Some more Code..............
writer.WriteEndElement(); //HEADER
writer.Flush();
}
return Json(1, JsonRequestBehavior.AllowGet);
我需要生成的文件在用户请求时自动下载到用户的系统上,并且没有生成其他文件。
谢谢。
在你的控制器中:
var fileContent = System.IO.File.ReadAllBytes(filePath + "bill" + dateString1 + ".xml");
return File(fileContent , System.Net.Mime.MediaTypeNames.Text.Xml, "bill" + dateString1 + ".xml");
更新。不创建文件:
byte[] fileContent;
using (var ms = new MemoryStream())
{
using (XmlWriter writer = XmlWriter.Create(ms, settings))
{
writer.WriteStartElement("HEADER");
//.......Some more Code..............
writer.Flush();
}
fileContent = ms.GetBuffer();
}
return File(fileContent , System.Net.Mime.MediaTypeNames.Text.Xml, "bill" + dateString1 + ".xml");
我有一种创建 XML 文件并将其保存到所需文件路径的方法。它工作得很好。但我面临的问题是我必须允许用户下载此文件,但它会下载到给定文件路径上的服务器,而不是用户系统上。
我有以下相同的代码
var dateString1 = DateTime.Now.ToString("yyyyMMddHHmmss");
XmlWriterSettings settings = new XmlWriterSettings
{
Indent = true,
IndentChars = (" "),
ConformanceLevel = ConformanceLevel.Fragment,
CloseOutput = true,
OmitXmlDeclaration = true
};
using (XmlWriter writer = XmlWriter.Create(filePath + "bill" + dateString1 + ".xml", settings))
{
writer.WriteStartElement("HEADER");
.......Some more Code..............
writer.WriteEndElement(); //HEADER
writer.Flush();
}
return Json(1, JsonRequestBehavior.AllowGet);
我需要生成的文件在用户请求时自动下载到用户的系统上,并且没有生成其他文件。
谢谢。
在你的控制器中:
var fileContent = System.IO.File.ReadAllBytes(filePath + "bill" + dateString1 + ".xml");
return File(fileContent , System.Net.Mime.MediaTypeNames.Text.Xml, "bill" + dateString1 + ".xml");
更新。不创建文件:
byte[] fileContent;
using (var ms = new MemoryStream())
{
using (XmlWriter writer = XmlWriter.Create(ms, settings))
{
writer.WriteStartElement("HEADER");
//.......Some more Code..............
writer.Flush();
}
fileContent = ms.GetBuffer();
}
return File(fileContent , System.Net.Mime.MediaTypeNames.Text.Xml, "bill" + dateString1 + ".xml");