Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 上传到服务器后如何读取文件_C#_Javascript_Asp.net - Fatal编程技术网

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

C# 上传到服务器后如何读取文件,c#,javascript,asp.net,C#,Javascript,Asp.net,我已经设置了一些HTML来接收一个文件,并将该文件发送到服务器。但是,我不希望数据在服务器上,而是在客户机上。如何在仍然能够读取数据的情况下将数据发送回客户端?这必须与IE8或至少IE9兼容。我在客户端使用Javascript和KnockoutJS,在服务器端使用C#/asp.net MVC 这就是我将文件发送到服务器的方式。既然这是一个POST方法,我就不能返回一些东西吗?也许我不明白它应该怎么用 @using (Html.BeginForm("loadReport", "home", For

我已经设置了一些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 { });
    }
@使用(Html.BeginForm(“loadReport”,“home”,FormMethod.Post,new{enctype=“multipart/formdata”})){

} 公共操作结果加载报告() { foreach(请求文件中的字符串上载) { //如果(!Request.Files[upload].HasFile())继续; 字符串路径=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)); } 返回this.Json(新的{}); }

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

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

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


希望此解释清楚且有帮助。

包括尝试的解决方案、为什么不起作用以及预期结果。您是否能够在服务器端接收并保存流?在服务器端接收并保存流是什么意思?您正在尝试向服务器发送文件(步骤1)。然后将它们重新发送回客户端(步骤2)。第一步是否有效?在保存文件时,如何在不刷新页面的情况下保存文件?您必须使用AJAX。使用和作为教程。