#asp.net
#asp.net
Вопрос:
как сохранить файлы (pdf и word файлы) в базе данных sql и как отобразить эти файлы с опцией «сохранить», «открыть» из базы данных sql при нажатии пользователем. я делаю проект, используя c # asp.net веб-приложение
Комментарии:
1. Какой поставщик базы данных? Какая версия .NET Framework?
Ответ №1:
Здесь вам нужно сделать несколько вещей:
1) Создайте страницу пользовательского интерфейса, которая позволяет пользователям загружать файлы.
На этой странице будет элемент управления FileUpload для проверки желаемых расширений
2) Напишите код для сохранения этих файлов в базе данных
Файлы могут храниться в виде двоичных двоичных объектов. Выбирать схему вашей базы данных будете вы и ваше приложение. Вы также можете выбрать один из многих инструментов ORM для предоставления вам доступа к базе данных из вашего кода см.
- Linq2SQL
- EntityFramework
- ADO.net
- Или смотрите раздел Создание уровня доступа к данным
У вас есть много вариантов, выбирайте то, что кажется вам наиболее естественным / легким.
3) Создайте пользовательский интерфейс для выбора пользователем существующих файлов
При этом ваш уровень данных ORM будет использоваться для считывания списков файлов и отображения каких-либо кнопок / ссылок, которые пользователь может выбрать и загрузить
4) Извлеките файлы из базы данных, как только пользователь выберет один, и верните файл
Прочитайте эту статью MSDN о возврате двоичных файлов
Кроме того, немного погуглив, вы, вероятно, найдете множество существующих решений с такими фреймворками, как DNN и т.д.
Ответ №2:
Для сохранения файлов вам следует проверить Filestream из SQL Server 2008: http://msdn.microsoft.com/en-us/library/cc716724.aspx
Другие традиционные платформы имеют аналогичную поддержку (с двоичными типами данных или типами изображений).
Альтернативой является то, что вы можете сохранить файл в общей файловой системе и сохранить только путь к файлу в таблице SQL.
Ответ №3:
Наиболее распространенный способ — иметь два столбца в базе данных, чтобы файл сохранялся автоматически. В 1 столбце содержится имя файла с его расширениями (например: file1.txt ) и 2-й столбец будет иметь двоичный тип данных. на уровне приложения. метод получает загруженное имя файла и преобразует его в массив байтов. затем этот массив сохраняется в sql в двоичном поле. имя файла сохраняется в 1-м поле. чтобы прочитать файл обратно, другой метод считывает двоичное поле из sql и преобразует его обратно в FileStream, затем сохраняет его с исходным именем файла (расширением).
Ответ №4:
Используйте fileUploaded для загрузки файла.
Считывание файла в массив байтов:
byte[] data = System.File.ReadAllByte(File Path);
преобразуйте байт[] в шестнадцатеричный и сохраните его в поле данных nvarchhar в SQL
stringBuilder sb = new StringBuilder()
foreach(byte b in data)
{
sb.Append(b.ToString("X");
}
Когда вам нужно его отобразить, преобразуйте его обратно в byte[] и создайте из него файл, и позвольте пользователю открыть / сохранить его оттуда.