我已经设置了一些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。
答案 0 :(得分:0)
将文件上传到服务器时,它会保留在服务器上;你不能通过客户端阅读,除非
1.)渲染页面时,在服务器端读取文件的内容并显示。
2.)使用AJAX获取文件的内容;然后,使用JavaScript来操作结果。
所以,保存文件;然后,使用AJAX检索其内容或刷新页面并将文件的内容写入呈现页面。
希望这个解释很清楚,也有帮助。