Прочитать первую строку файла из памяти - PullRequest
1 голос
/ 24 августа 2010

У меня есть текстовый файл с разделителями табуляции, который мне нужно загрузить в защищенную папку для SSIS для импорта в SQL Server. Файл будет загружен внешним пользователем через веб-приложение VIA.

Моя задача состоит в том, чтобы мне нужно было проверить этот файл на наличие каких-то вещей, прежде чем мне разрешат отправить его в безопасную папку. А именно, мне нужно убедиться, что у пользователя есть определенный столбец.

Я могу сделать это, если сохраню файл в папке в веб-приложении. Однако природа данных в файле такова, что мы не хотим размещать этот файл где-либо, кроме защищенной папки. Я также не могу поместить его непосредственно в эту папку, поскольку пакет служб SSIS настроен на запуск, как только файл появится там.

Что мне нужно сделать, так это найти способ, если он есть, проанализировать файл в памяти и, если он прошел все проверки, загрузить его в защищенную папку.

Я использую C # .NET и элемент управления FileUpload.

Мой поиск до сих пор включал в себя все виды информации, но все они требуют сначала сохранить файл где-нибудь, а затем работать с ним.

Большое вам спасибо за ваше время. Если кто-нибудь может указать мне на объект или какой-то код, который я могу проверить, я был бы очень признателен.

1 Ответ

6 голосов
/ 24 августа 2010

Вместо вызова SaveAs используйте свойство FileContent для доступа к содержимому файла как Stream, после чего вы можете выполнить любую обработку, необходимую для сохранения вручную.

ДляНапример, что-то вроде этого:

string data;

using(StreamReader reader = new StreamReader(fileUpload.FileContent))
{
    data = reader.ReadToEnd();
}

Переменная data теперь содержит содержимое файла в виде строки.Вы можете выполнить любую обработку, какую захотите, а затем сохранить ее (или нет) в соответствующем месте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...