问候!
我在提供支持的系统上遇到了一些问题。有一个场景,用户可以将他们的简历上传到数据库(MS SQL Server 2005),并且决定应用程序应该将这些文档存储在一个带有 varbinary 列的表中。我尝试了在 Internet 上找到的许多示例,但我无法弄清楚为什么该应用程序不存储来自 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 to sql。