>  기사  >  백엔드 개발  >  .NET이 PDF, Word 및 Excel을 데이터베이스에 저장하는 방법에 대한 자세한 설명

.NET이 PDF, Word 및 Excel을 데이터베이스에 저장하는 방법에 대한 자세한 설명

Y2J
Y2J원래의
2017-05-13 11:48:272173검색

이 글에서는 PDF, Word, Excel 파일을 데이터베이스에 저장하기 위한 ASP.NET 관련 정보를 주로 소개합니다. 관심 있는 친구들이 참고할 수 있는 내용입니다.

프로젝트에서 가끔 나중에 사용하려면 PDF, Word, Excel 문서 등을 데이터베이스에 업로드해야 합니다. 오늘 기사에서는 이러한 파일을 데이터베이스에 저장하는 방법을 설명합니다.

세부 단계

1단계: 데이터베이스를 열고 새로 만들기 쿼리를 클릭하고 만들기를 클릭합니다. Document라는 테이블:

코드는 다음과 같습니다.


create table Documents 
( 
SNo int identity, 
Name_File varchar(100), 
DisplayName varchar(50), 
Extension varchar(10), 
ContentType varchar(200), 
FileData varbinary(max), 
FileSize bigint, 
UploadDate datetime 
)

이 테이블에는 다음 데이터가 포함됩니다.

SNo 일련번호

Name_파일 파일 이름

DisplayName 파일 표시 이름

확장 파일 확장자

ContentType 파일 형식

FileData 파일 바이너리 형식

파일 크기 파일 크기

UploadDate 파일 가져오기 시간

2단계: Visual Studio를 열고 새 빈 웹 사이트를 만들고 이름을 "FilesToBinary"로 지정합니다.

3단계: 새 페이지 추가 이름을 "Conversion.aspx"로 지정합니다.

이 페이지에서는 TextBox, FileUpload 및 Button의 세 가지 컨트롤을 추가해야 합니다.

디자인 인터페이스는 아래와 같습니다.

물론 Conversion.apsx 파일에 다음 코드를 직접 입력할 수도 있습니다.


显示文件
 <asp:TextBox ID="txtfilename" runat="server"> 
 </asp:TextBox> 
<br /> 
 
选择文件 
<asp:FileUpload ID="FileUpload1" runat="server" /> 
<br /> 
 
<asp:Button ID="Button1" runat="server" 
Text="导入" OnClick="Button1_Click" />

4단계: 컨트롤이 추가된 후 Button을 두 번 클릭하고 다음 네임스페이스를 추가합니다. Conversion.apxs.cs 파일.


using System;
using System.Web;
using System.Data.SqlClient;
using System.Data;
using System.IO;

그런 다음 Button1_Click에 코드를 작성하여 파일을 바이너리 스트림으로 변환합니다. Button을 클릭한 후 파일을 데이터베이스에 저장할 수 있습니다.

코드는 다음과 같습니다.


protected void Button1_Click(object sender, EventArgs e)
 {
   if (!FileUpload1.HasFile) 
  { 
   Response.Write("未选择文件"); return; 
  } 
  else 
  {   
   string filename = Path.GetFileName(FileUpload1.PostedFile.FileName); 
   string extension = Path.GetExtension(filename); 
   string contentType = FileUpload1.PostedFile.ContentType; 
   HttpPostedFile file = FileUpload1.PostedFile; 
   byte[] document = new byte[file.ContentLength]; 
   file.InputStream.Read(document, 0, file.ContentLength); 
 
   //验证保存的文件扩展名是否为pdf,doc,docx,xls.
   if ((extension == ".pdf") || (extension == ".doc") || (extension == ".docx") || (extension == ".xls"))
   { 
 //验证文件的大小
    if (file.ContentLength <= 31457280)
    { 
     //表里插入数据
     using (SqlConnection conn = new SqlConnection("Data Source=AFOD3-609221015;Initial Catalog=Personal;Integrated Security=True")) 
     {
      conn.Open(); 
      string sql = @"insert into Documents(Name_File,DisplayName,Extension,ContentType,FileData,FileSize,UploadDate) values(@Name_File,@DisplayName,@Extension,@ContentType,@FileData,@FileSize,getdate())";
      SqlCommand cmd = new SqlCommand(sql, conn); 
      
      cmd.Parameters.Add("@Name_File", SqlDbType.VarChar); 
      cmd.Parameters["@Name_File"].Value = filename; 
      cmd.Parameters.Add("@DisplayName", SqlDbType.VarChar); 
      cmd.Parameters["@DisplayName"].Value = txtfilename.Text.Trim(); 
      cmd.Parameters.Add("@Extension", SqlDbType.VarChar); 
      cmd.Parameters["@Extension"].Value = extension; 
 
      cmd.Parameters.Add("@ContentType", SqlDbType.VarChar); 
      cmd.Parameters["@ContentType"].Value = contentType; 
 
      cmd.Parameters.Add("@FileData", SqlDbType.VarBinary); 
      cmd.Parameters["@FileData"].Value = document; 
 
      cmd.Parameters.Add("@FileSize", SqlDbType.BigInt); 
      cmd.Parameters["@FileSize"].Value = document.Length; 
      cmd.ExecuteNonQuery(); 
      cmd.Dispose(); 
      conn.Close(); 
      Response.Write("数据已添加"); 
     } 
 
    } 
    else 
    { Response.Write("文件大小无效"); return; } 
   } 
   else 
   {
    Response.Write("无效文件"); return; 
   } 
  } 
}

실행 결과는 그림과 같습니다.

이때 폴더를 찾아보고 파일을 추가하세요. 성공적으로 추가하려면 가져오기를 클릭하세요.

규칙을 준수하지 않는 파일을 선택하면 다음과 같이 표시됩니다.

다음으로 돌아가기 데이터베이스에 PDF, Word 및 Excel 파일이 성공적으로 추가되었습니다.

【관련 추천】

1. 특별 추천: "php 프로그래머 도구" Box" V0.1 버전 다운로드

2. ASP 무료 동영상 튜토리얼

3. ASP 튜토리얼

위 내용은 .NET이 PDF, Word 및 Excel을 데이터베이스에 저장하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.