Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.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# 如何在ASP.NET MVC3中上载和读取CSV文件_C#_Asp.net_Visual Studio 2010_Csv_Asp.net Mvc 3 - Fatal编程技术网

C# 如何在ASP.NET MVC3中上载和读取CSV文件

C# 如何在ASP.NET MVC3中上载和读取CSV文件,c#,asp.net,visual-studio-2010,csv,asp.net-mvc-3,C#,Asp.net,Visual Studio 2010,Csv,Asp.net Mvc 3,我正在做一个项目,我需要上传一个CSV文件并读取它。 我在Visual Studio 2010、MVC3和C语言中工作 如果我要使用html fileuplaod控件,我将如何获取上传的文件并在客户端本身读取它,而不将文件保存在服务器中。 我必须使用jquery吗? 我已经搜索了,但没有找到满足我要求的解决方案。我是MVC3和CSV文件处理的新手,非常困惑 *上传并读取.csv文件以将其保存在数据库中的最简单方法是什么 非常感谢您提供清晰的解决方案。谢谢。您可以将文件保存在服务器上,然后在读取其

我正在做一个项目,我需要上传一个CSV文件并读取它。 我在Visual Studio 2010、MVC3和C语言中工作

如果我要使用html fileuplaod控件,我将如何获取上传的文件并在客户端本身读取它,而不将文件保存在服务器中。 我必须使用jquery吗? 我已经搜索了,但没有找到满足我要求的解决方案。我是MVC3和CSV文件处理的新手,非常困惑

*上传并读取.csv文件以将其保存在数据库中的最简单方法是什么


非常感谢您提供清晰的解决方案。谢谢。

您可以将文件保存在服务器上,然后在读取其中的内容后,可以删除该文件

我认为你不可能从客户端读取这些信息。你必须上传到你的服务器上才能阅读

using (StreamReader CsvReader = new StreamReader(input_file))
                {
                    string inputLine = "";

                    while ((inputLine = CsvReader.ReadLine()) != null)
                    {
                        values.Add(inputLine.Trim().Replace(",", "").Replace(" ", ""));
                    }
                    CsvReader.Close();
                    return values;
                }

您应该能够在不保存数据的情况下访问数据-使用InputStream属性

专用异步任务进程异步(字符串调查ID)
{如果(!Request.Content.IsMimeMultipartContent())
{
返回“| UnsupportedMediaType”;
}
尝试
{
var provider=新的MultipartMemoryStreamProvider();
wait Request.Content.LoadIntoBufferAsync().ConfigureWait(false);
wait Request.Content.ReadAsMultipartAsync(提供程序).configurewait(false);
HttpContent=provider.Contents.FirstOrDefault();
如果(内容!=null)
{
Stream=await content.ReadAsStreamAsync().ConfigureAwait(false);
使用(StreamReader CsvReader=新StreamReader(stream))
{
字符串inputLine=“”;
而((inputLine=CsvReader.ReadLine())!=null)
{
string[]vars=inputLine.Split(',');
}
CsvReader.Close();
//返回值;
}
}
}
捕获(例外e)
{
返回e.ToString();
}
返回“无需处理”;
}

您能解释一下为什么不想将文件保存在服务器上吗?如果您这样做,加载CSV文件非常容易,例如,我希望在客户端本身读取文件,提取数据并将数据保存到数据库中。我无法将文件保存在服务器中,因为这样我将保存大量文件。是否有任何选项??将文件保存在服务器上的临时目录中(确保文件名唯一),将其读入数据库,删除文件…是否有好的jquery pulgin将文件作为流读取并发送到服务器??有人能帮我解决这个问题吗???@sunshine-请开始新的问题。
    private async Task<string> ProcessAsync(string surveyId)
    {           if(!Request.Content.IsMimeMultipartContent())
        {
            return "|UnsupportedMediaType";
        }

        try
        {
            var provider = new MultipartMemoryStreamProvider();

            await Request.Content.LoadIntoBufferAsync().ConfigureAwait(false);
            await Request.Content.ReadAsMultipartAsync(provider).ConfigureAwait(false);

            HttpContent content = provider.Contents.FirstOrDefault();

            if(content != null)
            {
                Stream stream = await content.ReadAsStreamAsync().ConfigureAwait(false);

                using (StreamReader CsvReader = new StreamReader(stream))
                {
                    string inputLine = "";

                    while ((inputLine = CsvReader.ReadLine()) != null)
                    {
                        string[] vars = inputLine.Split(',');


                    }
                    CsvReader.Close();
                    //return values;
                }

            }
        }
        catch(Exception e)
        {
            return e.ToString();
        }

        return "Nothing To Process";
 }