내가 지원하고있는 시스템에 문제가 있습니다. 사용자가 데이터베이스 (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 –