将XML文件保存在服务器文件夹中

时间:2015-12-08 12:12:24

标签: c# xml file asp.net-mvc-5

我在MVC应用程序中有一个函数,其中对象被序列化。我试图在用户选择的文件夹和文件名中保存文件的内容。所以基本上用户选择路径和文件名。

我试过以下

@using (Html.BeginForm("XmlExport", "LsystemFamilies", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    @Html.HiddenFor(model=>model.FamilyID)
    <input type="file" name="fs" />
    <input type="submit" value="Create and export"/>
}

使用上述方法,用户只能选择系统中已存在的文件。

控制器

    public void XmlExport(ExportFileName file,HttpPostedFileBasefs)
    {
        var model = new XMLSystemFamily();
        var lsystemfamily = db.LsystemFamily.FirstOrDefault(x => x.LsystemFamilyID==file.FamilyID);
        //Code eliminated
        var serializer = new XmlSerializer(typeof(XMLSystemFamily));
        //var path = String.Format("{0}xmlfiles", AppDomain.CurrentDomain.BaseDirectory);
        //FileStream fs = new FileStream("\\FE0VMC0643\\TeDaLS\\xmlfiles\\"+file.FileName+".xml", FileMode.Create);
        fs.Close();
        StreamWriter writer = new StreamWriter(fs.FileName);
        serializer.Serialize(writer.BaseStream, model);
    }

从表单返回的模型为空。文件名也是空的。 但是,当我让用户只输入文件名时,并且在控制器的注释部分中,我使用用户输入的文件名创建了一个文件,它完美地运行。但是当我在服务器中部署它时,我无法设置创建xml文件的路径。

我还看过控制器可以为xml文件生成可下载链接的帖子。但是我再次无法设置写入xml文件的路径。我已经读过,可以创建一个可下载的链接,甚至无需将其写入文件,但我无法理解它是如何实现的。

TL;博士

  • 在用户指定的位置创建文件,写入新创建的文件

  • 为生成的xml创建可下载的链接,而不将文件保存在任何地方

0 个答案:

没有答案