0

我已经设置了一些 HTML 来接收文件,并将文件发送到服务器。但是,我不希望数据在服务器上,而是在客户端上。如何在仍然能够读取数据的同时将数据发送回客户端?这必须与 IE8 或至少 IE9 兼容。我在客户端使用 Javascript 和 KnockoutJS,在服务器端使用 C#/asp.net MVC。

这就是我将文件发送到服务器的方式。由于这是一个 POST 方法,我不应该能够返回一些东西吗?也许我不明白它应该如何使用。

@using (Html.BeginForm("loadReport", "home", FormMethod.Post, new {enctype="multipart/form-data"})){ 

 <input type="file" name="FileUpload1" /><br />
 <input type="submit" name="Submit" id="Submit" value="Upload" />}


    public ActionResult loadReport()
    {
        foreach (string upload in Request.Files)
        {
            //     if (!Request.Files[upload].HasFile()) continue;
            string path = AppDomain.CurrentDomain.BaseDirectory;
            string filename = Path.GetFileName(Request.Files[upload].FileName);
            Request.Files[upload].SaveAs(Path.Combine(path, filename));
            System.Diagnostics.Debug.WriteLine(Path.GetFileName(Request.Files[upload].FileName));
        }
        return this.Json(new { });
    }

这两个部分本质上是我在博客上找到的关于如何上传到服务器的部分。他们没有返回 JSON 文件,而是返回了一个视图。我试过这个来检查它的功能,但它向我的javascript返回了一个新页面而不是一个json文件。

4

1 回答 1

0

当您将文件上传到服务器时,它会保留在服务器上;您无法通过客户端读取它,除非
1.) 呈现页面时,文件的内容在服务器端读取并显示。
2.) 使用 AJAX 获取文件内容;然后,使用 JavaScript 来操作结果。

所以,保存文件;然后,使用 AJAX 检索其内容或刷新页面并将文件的内容写入渲染页面。

希望这个解释很清楚,它会有所帮助。

于 2013-08-07T15:04:03.310 回答