ASP.NET實現寫入和讀取圖片(C#+SQL Server)

來源:互聯網
上載者:User

//寫入圖片到資料庫中
  private void WriteImage()
  {
   SqlCommand comm = conn.CreateCommand();
   comm.CommandText = "insert into images(image,type) values(@image,@type)";
   comm.CommandType = CommandType.Text;
   SqlParameter param = comm.Parameters.Add("@image",SqlDbType.Image);
   param.Value = ReadFile();
   param = comm.Parameters.Add("@type",SqlDbType.NVarChar);
   param.Value = GetContentType(new FileInfo(fileName).Extension.Remove(0,1));
   if(comm.executenonquery() == 1)
    Response.Write("Successful");
   else
    Response.Write("Fail");
   
   conn.Close();
  }
  //從資料庫中讀取圖片
  private void ReadImage()
  {
   SqlCommand comm = conn.CreateCommand();
   comm.CommandText = "select image,type from images";
   comm.CommandType = CommandType.Text;
   sqldatareader reader = comm.ExecuteReader();
   while(reader.Read())
   {
    Response.ContentType = reader["type"].ToString();//讀寫類型  一定要設定 否則瀏覽器會當作文本輸出
    Response.BinaryWrite((byte[])reader["image"]);//圖片資料
   }
   response.write("successful");
   Response.End();
   conn.close();
  }

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//其他自訂方法如下:

  //串連資料庫
  private void ConnectDB()
  {
   string connStr = "Initial Catalog=;Data Source=;User ID=sa;Password=;";
   conn = new SqlConnection(connStr);
   conn.Open();
  }

//得到檔案名稱
  private string GetFile()
  {
   HttpPostedFile file = File1.PostedFile;
   fileName = file.FileName;
   return fileName;
  }
  //讀取檔案內容
  private byte[] ReadFile()
  {
   FileStream file = File.OpenRead(GetFile());
   byte[] content = new byte;
   file.Read(content,0,content.Length);
   file.Close();
   return content;
  }

  //擷取圖片的尾碼名
  private string GetContentType(string extension)
  {
   string type = "";
   if(extension.equals("jpg") || extension.Equals("JPG"))
    type = "jpeg";
   else
    type = extension;
   return "image/"+type;
  }

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.