приветствия!Вставка файлов в sql-сервер
У меня возникли проблемы с системой, которую я поддерживаю. Существует сценарий, в котором пользователи могут загружать свое резюме в базу данных (MS SQL Server 2005), и было решено, что приложение должно хранить эти документы в таблице с столбцом varbinary. Я пробовал множество примеров, найденных в Интернете, но я не могу понять, почему приложение не хранит байты из документа Microsoft Word (.doc). Если я попытаюсь сохранить более новую версию (.docx или xlsx) или даже .txt, функциональность работает отлично.
Я пробовал также хранить PDF-файлы в том же столбце, но не работал. Я думаю, что это что-то с форматом документа, я не знаю
Не могли бы вы, ребята, помочь. Я отчаянно ищу одно решение.
Вот скрипт, который я создал для моего стола:
CREATE TABLE [dbo].[resumes](
[id_professional] [int] NOT NULL,
[professional_name] [varchar](50) NULL,
[file_type] [varchar](50) NULL,
[data] [varbinary](max) NULL,
CONSTRAINT [PK_resumes] PRIMARY KEY CLUSTERED
(
id_professional] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]
И вот код, который я пытаюсь сделать его работу:
foreach (string upload in Request.Files)
{
//create byte array of size equal to file input stream
byte[] fileData = new byte[Request.Files[upload].InputStream.Length];
//add file input stream into byte array
Request.Files[upload].InputStream.Read(fileData, 0,
Convert.ToInt32(Request.Files[upload].InputStream.Length));
//create system.data.linq object using byte array
System.Data.Linq.Binary binaryFile = new System.Data.Linq.Binary(fileData);
Resume objResume = new Resume()
objResume.data= binaryFile;
ResumeDAO.Save(objResume);
}
Кстати, я использую LINQ к sql в этом приложении.
Он просто не загружается, или он загружает и качает файл? –
Вставляет запись в таблицу, но когда я смотрю эту запись, столбец байтов (varbinary) пуст. Если вы пытаетесь вставить файлы с расширениями docx или xlsx (более новая версия MS Office Word/MS Office Excel), она вставляется прямо в базу данных с заполненным байтом. – TuLePe
Любые ошибки в журнале ошибок? http://msdn.microsoft.com/en-us/library/ms187109.aspx –