上传到服务器后如何读取文件

时间:2013-08-07 14:54:50

标签: c# javascript asp.net

我已经设置了一些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文件,而是返回了一个视图。我试过这个来检查它的功能,但它返回了一个新的页面,而不是一个json文件到我的javascript。

1 个答案:

答案 0 :(得分:0)

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

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

希望这个解释很清楚,也有帮助。