Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc ASP.NET MVC中的简单上传/下载表单_Asp.net Mvc_Xml_File - Fatal编程技术网

Asp.net mvc ASP.NET MVC中的简单上传/下载表单

Asp.net mvc ASP.NET MVC中的简单上传/下载表单,asp.net-mvc,xml,file,Asp.net Mvc,Xml,File,我刚开始学习ASP.NET MVC,但希望进一步探索。我已经浏览了常见的“hello,world”示例,现在我想尝试一些更复杂的内容。具体而言,我希望能够: 上传一些XML文件 对它做一些简单的处理,然后 允许用户下载带有处理结果的新文件 在本例中,我想做的处理是一件微不足道的事情,它证明了我确实得到了XML文件并对其进行了检查。例如,计算元素的数量就足够了。完成处理后,我希望将结果作为一个新文件流式传输给用户(例如,一个只包含“There was 398elements”一句的文本文件),

我刚开始学习ASP.NET MVC,但希望进一步探索。我已经浏览了常见的“hello,world”示例,现在我想尝试一些更复杂的内容。具体而言,我希望能够:

  • 上传一些XML文件
  • 对它做一些简单的处理,然后
  • 允许用户下载带有处理结果的新文件
在本例中,我想做的处理是一件微不足道的事情,它证明了我确实得到了XML文件并对其进行了检查。例如,计算
元素的数量就足够了。完成处理后,我希望将结果作为一个新文件流式传输给用户(例如,一个只包含“There was 398
elements”一句的文本文件),以便他们的浏览器启动下载


什么是一种好的通用方法?

要进行上传,您需要有一个文件输入和一个使用enctype多部分/表单数据的表单。在服务器上,您可以从与输入的标记名匹配的Request.Files集合元素获得一个HttpPostedFileBase对象。然后访问文件对象上的流并读取它

一旦有了数据,就可以执行转换——这里是读取特定标记的计数。然后,您希望从您的操作返回一个FileResult。由于它实际上只是一个字符串,我建议将其写入MemoryStream,然后倒带该字符串并从中创建FileResult

<% using (Html.BeginForm("Upload","Controller",FormMethod.Post, new { enctype = "multipart/form-data"))
   { %>
     <label for="uploadFile">File:</label>
     <input type="file" name="uploadFile" id="uploadFile" />
     <input type="submit" value="Upload" />
<% } %>

要进行上传,您需要有一个文件输入和一个使用enctype多部分/表单数据的表单。在服务器上,您可以从与输入的标记名匹配的Request.Files集合元素获得一个HttpPostedFileBase对象。然后访问文件对象上的流并读取它

一旦有了数据,就可以执行转换——这里是读取特定标记的计数。然后,您希望从您的操作返回一个FileResult。由于它实际上只是一个字符串,我建议将其写入MemoryStream,然后倒带该字符串并从中创建FileResult

<% using (Html.BeginForm("Upload","Controller",FormMethod.Post, new { enctype = "multipart/form-data"))
   { %>
     <label for="uploadFile">File:</label>
     <input type="file" name="uploadFile" id="uploadFile" />
     <input type="submit" value="Upload" />
<% } %>

这太棒了!我一吃完午饭就要试试这个。谢谢你的帮助。这太棒了!我一吃完午饭就要试试这个。谢谢你的帮助。