我已经设置了一些 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文件。