我有一个大型的Web表单应用程序,我想让用户导出他们的数据,以防他们不想一次完成整个表单。然后当他们返回时,他们可以导入数据并继续他们离开的地方。
原因是客户要求的一部分是不使用数据库。
我已经达到了创建包含所有表单数据的XML文件的程度,但我希望客户端能够下载该XML文件,而无需将应用程序保存到服务器,即使是临时的。 / p>
是否可以创建XML文件并通过流/附件将其传输到客户端而不将其保存到磁盘?
我正在使用C#Asp.net
答案 0 :(得分:2)
您没有提到您正在使用的服务器技术,但通常是:
text/xml
attachment; filename=data.xml;
答案 1 :(得分:2)
您可以写信给HttpResponse:
HttpResponse response = HttpContext.Current.Response;
string xmlString = "<xml>blah</xml>";
string fileName = "ExportedForm.xml";
response.StatusCode = 200;
response.AddHeader("content-disposition", "attachment; filename=" + fileName);
response.AddHeader("Content-Transfer-Encoding", "binary");
response.AddHeader("Content-Length", _Buffer.Length.ToString());
response.ContentType = "application-download";
response.Write(xmlString);
答案 2 :(得分:1)
查看MemoryStream。
http://msdn.microsoft.com/en-us/library/system.io.memorystream.aspx
您应该能够将XML存储在内存中,然后通过HTTP请求将其传送到您的客户端,或者您想要。或者
。答案 3 :(得分:1)
HttpResponse response = HttpContext.Current.Response; string xmlString = "<xml>blah</xml>"; string fileName = "ExportedForm.xml"; response.StatusCode = 200; response.AddHeader("content-disposition", "attachment;
filename =“+ fileName); response.AddHeader(“Content-Transfer-Encoding”,“binary”); response.AddHeader(“内容长度”, _Buffer.Length.ToString());
response.ContentType = "application-download"; response.Write(xmlString);
但它将所有页面内容保存到文件
答案 4 :(得分:0)
是肯定的。在PHP中它看起来像这样:
header("Content-type: text/xml");
$headerText = "Content-disposition: attachment; filename=file.xml";
header($headerText);
echo $your_XML_contents;
exit;