Как загрузить и прочитать файл CSV в ASP.NET MVC3 - PullRequest
7 голосов
/ 21 февраля 2011

Я работаю над проектом, и мне нужно загрузить CSV-файл и прочитать его.Я работаю в Visual Studio 2010, а также на языке MVC3 и C #.

Если мне нужно использовать элемент управления html fileuplaod, как мне взять загруженный файл и прочитать его на стороне клиента, не сохраняя файл всервер.Должен ли я использовать JQuery?Я искал, но не нашел решения, соответствующего моим требованиям.Я новичок в обработке файлов MVC3 и CSV и совершенно запутался.

* Какой самый простой способ загрузить файл .csv и прочитать его, чтобы сохранить его в базе данных.

AЧеткое решение будет высоко ценится. Спасибо.

Ответы [ 3 ]

4 голосов
/ 21 февраля 2011

Что вы можете сделать, это сохранить файл на сервере, а затем, прочитав с него содержимое, можете удалить файл.

Я думаю, что вы никак не можете прочитать информацию со стороны клиента. Вы должны загрузить его на свой сервер, чтобы прочитать это.

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

                    while ((inputLine = CsvReader.ReadLine()) != null)
                    {
                        values.Add(inputLine.Trim().Replace(",", "").Replace(" ", ""));
                    }
                    CsvReader.Close();
                    return values;
                }
2 голосов
/ 18 января 2012

Вы должны иметь доступ к данным, не сохраняя их - используя свойство InputStream

http://msdn.microsoft.com/en-us/library/system.web.httppostedfile.inputstream.aspx

и это (см. Ответ Паулия Залиадуониса)

0 голосов
/ 24 ноября 2014
    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";
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...