日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
如何在c語言中將圖片存入mysql數(shù)據(jù)庫(c把圖片存入mysql數(shù)據(jù)庫)

隨著互聯(lián)網(wǎng)的發(fā)展,數(shù)據(jù)存儲和管理已經(jīng)變得越來越重要。在實際開發(fā)中,有時需要將圖片存入數(shù)據(jù)庫中,以便于管理和使用。本文將介紹。

創(chuàng)新互聯(lián)服務項目包括肇州網(wǎng)站建設、肇州網(wǎng)站制作、肇州網(wǎng)頁制作以及肇州網(wǎng)絡營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關系等,向廣大中小型企業(yè)、政府機構等提供互聯(lián)網(wǎng)行業(yè)的解決方案,肇州網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務的客戶以成都為中心已經(jīng)輻射到肇州省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!

1. 準備工作

在開始之前,我們需要安裝mysql數(shù)據(jù)庫和相關驅動程序。此外,我們還需要一個c語言開發(fā)環(huán)境,如Visual Studio或Code::Blocks。

2. 創(chuàng)建數(shù)據(jù)庫表格

我們需要創(chuàng)建一個用于存儲圖片的數(shù)據(jù)庫表格。可以使用mysql命令行工具或任何mysql客戶端來完成此操作。

下面是創(chuàng)建數(shù)據(jù)庫表格的示例代碼:

CREATE TABLE images (

id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,

name VARCHAR(100),

data LONGBLOB

);

該表格包含三列:id、name和data。id列是自動遞增的主鍵,用于唯一標識每個記錄。name列用于存儲圖片的名稱,data列用于存儲圖片的內(nèi)容。我們使用LONGBLOB類型來存儲二進制數(shù)據(jù)。

3. 讀取圖片數(shù)據(jù)

在將圖片存入數(shù)據(jù)庫之前,我們需要從文件中讀取圖片數(shù)據(jù)。我們可以使用c語言中的文件I/O函數(shù)來完成此操作。

下面是讀取圖片數(shù)據(jù)的示例代碼:

FILE *fp;

char *buffer;

long fileLen;

fp = fopen(“sample.jpg”, “rb”);

if (!fp) {

fprintf(stderr, “Unable to open file.\n”);

exit(1);

}

fseek(fp, 0, SEEK_END);

fileLen = ftell(fp);

fseek(fp, 0, SEEK_SET);

buffer = (char *)malloc(fileLen + 1);

if (!buffer) {

fprintf(stderr, “Memory error.\n”);

exit(2);

}

fread(buffer, fileLen, 1, fp);

fclose(fp);

在上面的代碼中,我們打開一個名為sample.jpg的文件,并使用fread函數(shù)將其內(nèi)容讀入內(nèi)存中的緩沖區(qū)中。我們使用malloc函數(shù)來分配足夠的內(nèi)存來存儲整個文件,然后在讀取文件后將文件指針關閉。

4. 將圖片數(shù)據(jù)存入數(shù)據(jù)庫

我們可以使用mysql C API來將讀取的圖片數(shù)據(jù)存入數(shù)據(jù)庫中。該API包含一組函數(shù),為開發(fā)人員提供了與mysql數(shù)據(jù)庫進行交互的方法。

下面是將圖片數(shù)據(jù)存入數(shù)據(jù)庫的示例代碼:

MYSQL *conn;

MYSQL_RES *res;

MYSQL_ROW row;

conn = mysql_init(NULL);

if (!mysql_real_connect(conn, “l(fā)ocalhost”, “username”, “password”, “database”, 0, NULL, 0)) {

fprintf(stderr, “%s\n”, mysql_error(conn));

exit(1);

}

mysql_query(conn, “set names utf8”);

mysql_query(conn, “START TRANSACTION”);

char *query;

query = (char *)malloc(5000 * sizeof(char));

sprintf(query, “INSERT INTO images(name, data) VALUES(‘%s’, ‘%s’)”,

“sample.jpg”, buffer);

if (mysql_query(conn, query)) {

fprintf(stderr, “%s\n”, mysql_error(conn));

mysql_query(conn, “ROLLBACK”);

exit(1);

} else {

mysql_query(conn, “COMMIT”);

printf(“Successfully Inserted\n”);

}

mysql_close(conn);

在上面的代碼中,我們首先使用mysql_init函數(shù)初始化mysql連接句柄。然后,我們使用mysql_real_connect函數(shù)建立與數(shù)據(jù)庫的連接。我們使用malloc函數(shù)分配足夠的內(nèi)存來存儲INSERT查詢。接下來,我們將查詢字符串組裝起來并使用mysql_query函數(shù)執(zhí)行它。我們使用mysql_close函數(shù)關閉數(shù)據(jù)庫連接。

5. 結論

在本文中,我們介紹了。我們討論了如何創(chuàng)建數(shù)據(jù)庫表格、如何讀取圖片數(shù)據(jù)以及如何使用mysql C API將數(shù)據(jù)存入數(shù)據(jù)庫中。希望這篇文章對正在尋找此類解決方案的開發(fā)人員有所幫助。

相關問題拓展閱讀:

  • 圖片如何存入數(shù)據(jù)庫?

圖片如何存入數(shù)據(jù)庫?

通常對用戶上傳的圖片需要保存到數(shù)據(jù)庫中。解決方法一般有兩種:一種是將圖片保存的路徑存儲到數(shù)據(jù)庫;另一種是將圖片以二進制數(shù)據(jù)流的形式直接寫入數(shù)據(jù)庫字段中。以下為具體方法:

  一、保存圖片的上傳路徑到數(shù)據(jù)庫:

  string uppath=””;//用于保存圖片上傳路徑

  //獲取上傳圖片的文件名

  string fileFullname = this.FileUpload1.FileName;

  //獲取圖片上傳的時間,以時間作為圖片的名字可以防止圖片重名

  string dataName = DateTime.Now.ToString(“yyyyMMddhhmmss”);

  //獲取圖片的文件名(不含擴展名)

  string fileName = fileFullname.Substring(fileFullname.LastIndexOf(“\\”) + 1);

  //獲取圖片擴展名

  string type = fileFullname.Substring(fileFullname.LastIndexOf(“.”) + 1);

  //判斷是否為要求的格式

  if (type == “bmp” || type == “jpg” || type == “jpeg” || type == “gif” || type == “JPG” || type == “JPEG” || type == “BMP” || type == “GIF”)

  {

  //將圖片上傳到指定路徑的文件夾

  this.FileUpload1.SaveAs(Server.MapPath(“~/upload”) + “\\” + dataName + “.” + type);

  //將路徑保存到變量,將該變量的值保存到數(shù)據(jù)庫相應字段即可

  液櫻uppath = “~/upload/” + dataName + “.” + type;

  }

  二、將圖片以二進制數(shù)據(jù)流直接保存到數(shù)據(jù)庫:

  引用如下命名空間:

  using System.Drawing;

  using System.IO;

  using System.Data.SqlClient;

  設計數(shù)據(jù)庫時,表中相應的字段類型為iamge

  保存:

  /滲搭/圖片路徑

  string strPath = this.FileUpload1.PostedFile.FileName.ToString ();

  //讀取圖片

  FileStream fs = new System.IO.FileStream(strPath, FileMode.Open, FileAccess.Read);

  BinaryReader br = new BinaryReader(fs);

  byte photo = br.ReadBytes((int)fs.Length);

  br.Close();

  fs.Close();

  //存入

  SqlConnection myConn = new SqlConnection(“Data Source=.;Initial Catalog=stumanage;User ID=sa;Password=123”);

  string strComm = ” INSERT INTO stuInfo(stuid,stuimage) VALUES(107,@photoBinary )”;//操作數(shù)據(jù)庫語句根據(jù)需要修改

  SqlCommand myComm = new SqlCommand(strComm, myConn);

  myComm.Parameters.Add(“@photoBinary”, SqlDbType.Binary, photo.Length);

  myComm.Parameters.Value = photo;

  myConn.Open();

  if (myComm.ExecuteNonQuery() > 0)

  叢埋拿{

  this.Label1.Text = “ok”;

  }

  myConn.Close();

  讀?。?/p>

  …連接數(shù)據(jù)庫字符串省略

  mycon.Open();

  SqlCommand command = new

  SqlCommand(“select stuimage from stuInfo where stuid=107”, mycon);//查詢語句根據(jù)需要修改

  byte image = (byte)command.ExecuteScalar ();

  //指定從數(shù)據(jù)庫讀取出來的圖片的保存路徑及名字

  string strPath = “~/Upload/zhangsan.JPG”;

  string strPhotoPath = Server.MapPath(strPath);

  //按上面的路徑與名字保存圖片文件

  BinaryWriter bw = new BinaryWriter(File.Open(strPhotoPath,FileMode.OpenOrCreate));

  bw.Write(image);

  bw.Close();

  //顯示圖片

  this.Image1.ImageUrl = strPath;

  采用倆種方式可以根據(jù)實際需求靈活選擇。

1、新建一個數(shù)據(jù)庫,數(shù)據(jù)庫名為Image,表名為image。并為表添加ID,tupian兩個列。

2、新建一個項目(Photo),在工具箱中往窗體中拖入一個PictureBox控件,兩個Button按鈕,一個OpenFileDialog控件。并修改pictureBox1控件的屬性BorderStyle為FixedSingle,SizeMode為StretchImage;修改兩個button控件屬性的Text值依次為”打開一張圖片”“插入數(shù)據(jù)庫”。

3、首先打開“數(shù)據(jù)“選擇“添加新數(shù)據(jù)源”,然后(數(shù)據(jù)庫)下一步,(

數(shù)據(jù)集

)下一步,選擇”新建連接“,依次選擇服務器名,服務器驗證方式,選擇”選擇或輸入一個數(shù)據(jù)庫名。

4、選擇”選擇或輸入一個數(shù)據(jù)庫名,添加剛剛新建的數(shù)據(jù)庫,然碼橘后點擊“測試檔培連接”,看看數(shù)據(jù)庫連接是否成功。成功后點“確定”回到“數(shù)據(jù)源配置向導”頁面,將“連接

字符串

復制下來。

5、行模唯添加兩條using

命名空間

using System.IO;  using System.Data.SqlClient;作用為讀取

二進制

數(shù)據(jù)流,用于數(shù)據(jù)庫的連接。

6、編輯Button按鈕“打開一張圖片”的Click事件。

關于c 把圖片存入mysql數(shù)據(jù)庫的介紹到此就結束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關注本站。

成都創(chuàng)新互聯(lián)科技有限公司,是一家專注于互聯(lián)網(wǎng)、IDC服務、應用軟件開發(fā)、網(wǎng)站建設推廣的公司,為客戶提供互聯(lián)網(wǎng)基礎服務!
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡單好用,價格厚道的香港/美國云服務器和獨立服務器。創(chuàng)新互聯(lián)——四川成都IDC機房服務器托管/機柜租用。為您精選優(yōu)質idc數(shù)據(jù)中心機房租用、服務器托管、機柜租賃、大帶寬租用,高電服務器托管,算力服務器租用,可選線路電信、移動、聯(lián)通機房等。


分享題目:如何在c語言中將圖片存入mysql數(shù)據(jù)庫(c把圖片存入mysql數(shù)據(jù)庫)
網(wǎng)頁地址:http://www.dlmjj.cn/article/dheojgh.html