2012-05-15 4 views
0

Я работаю с типами данных SQL Server 2008 и FileStream для хранения больших файлов в базе данных.Загрузка файлов на SQL Server без использования слишком большой памяти

До сих пор все работает нормально, но проблема заключается мой метод загрузки выглядит следующим образом:

public static void UploadFileToDatabase(string location) 
{ 
    FileStream fs = new FileStream(location, FileMode.Open, FileAccess.Read); 

    byte[] data = new byte[fs.Length]; 

    fs.Read(data, 0, System.Convert.ToInt32(fs.Length)); 
    fs.Close(); 

    SaveToDatabaseMethod(data) 

    data = null; 
} 

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

Какова наилучшая практика в моем случае?

+1

У вас возникли проблемы или почему вы хотите изменить это? Насколько велики файлы? Вы должны посмотреть на ключевое слово 'using' –

+0

Как выглядит ваш SaveToDatabaseMethod? Единственный способ избежать буферизации файла в памяти - передать его в SaveToDatabaseMethod –

ответ

1

FileStream имеет метод WriteByte

WriteByte

See The Insert Data Example

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

Смежные вопросы