如何将图片储存在MySQL数据库里
发布时间:2025-05-17 11:23:20 发布人:远客网络
一、如何将图片储存在MySQL数据库里
通常对用户上传的图片需要保存到数据库中。解决方法一般有两种:一种是将图片保存的路径存储到数据库;另一种是将图片以二进制数据流的形式直接写入数据库字段中。以下为具体方法:
一、保存图片的上传路径到数据库:
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);
//将路径保存到变量,将该变量的值保存到数据库相应字段即可
uppath="~/upload/"+ dataName+"."+ type;
二、将图片以二进制数据流直接保存到数据库:
设计数据库时,表中相应的字段类型为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);
SqlConnection myConn= new SqlConnection("Data Source=.;Initial Catalog=stumanage;User ID=sa;Password=123");
string strComm=" INSERT INTO stuInfo(stuid,stuimage) VALUES(107,@photoBinary)";//操作数据库语句根据需要修改
SqlCommand myComm= new SqlCommand(strComm, myConn);
myComm.Parameters.Add("@photoBinary", SqlDbType.Binary, photo.Length);
myComm.Parameters["@photoBinary"].Value= photo;
if(myComm.ExecuteNonQuery()> 0)
SqlCommand("select stuimage from stuInfo where stuid=107", mycon);//查询语句根据需要修改
byte[] image=(byte[])command.ExecuteScalar();
//指定从数据库读取出来的图片的保存路径及名字
string strPath="~/Upload/zhangsan.JPG";
string strPhotoPath= Server.MapPath(strPath);
//按上面的路径与名字保存图片文件
BinaryWriter bw= new BinaryWriter(File.Open(strPhotoPath,FileMode.OpenOrCreate));
this.Image1.ImageUrl= strPath;
采用俩种方式可以根据实际需求灵活选择。
二、C语言在MySQL中实现图片路径的存储cmysql图片路径
C语言在MySQL中实现图片路径的存储
随着互联网的发展,图片在我们的日常生活中扮演着越来越重要的角色。在网上购物、社交、阅读等场景中,图片都扮演着不可或缺的角色。因此,图片的存储和管理也变得越来越重要。MySQL是目前使用最广泛的关系型数据库之一,通过C语言实现将图片路径存储到MySQL中并不复杂。
我们需要创建一个数据库,包括以下两个数据表。
|——–|——–|
|——–|——–|
MYSQL* mysql= mysql_init(NULL);
mysql_real_connect(mysql,“localhost”,“root”,“password”,“test”, 0, NULL, 0);
char* path=“/img/1.jpg”;
char* insert_sql=“INSERT INTO Images(path) VALUES(‘%s’)”;
sprintf(insert_query, insert_sql, path);
mysql_real_query(mysql, insert_query, strlen(insert_query));
char* select_sql=“SELECT path FROM Images WHERE id=%d”;
sprintf(select_query, select_sql, id);
mysql_real_query(mysql, select_query, strlen(select_query));
MYSQL_RES*result= mysql_store_result(mysql);
while((row= mysql_fetch_row(result))){
printf(“%s\n”, row[0]);
char* tag_sql=“INSERT INTO Tags(tag) VALUES(‘%s’)”;
sprintf(tag_query, tag_sql, tag);
mysql_real_query(mysql, tag_query, strlen(tag_query));
char* tag_select_sql=“SELECT tag FROM Tags WHERE id=%d”;
sprintf(tag_select_query, tag_select_sql, tag_id);
mysql_real_query(mysql, tag_select_query, strlen(tag_select_query));
MYSQL_RES*tag_result= mysql_store_result(mysql);
while((tag_row= mysql_fetch_row(tag_result))){
printf(“%s\n”, tag_row[0]);
mysql_free_result(tag_result);
以上代码演示了如何使用C语言将图片路径存储到MySQL中,并实现了查询图片路径和标签的功能。
C语言在MySQL中实现图片路径的存储相对简单,只需要通过MySQL的C API访问数据库即可。但是,在实际开发过程中,我们还需要考虑如何处理图片的上传、下载、压缩等操作,以及如何保证数据库和图片的一致性等问题。希望本文能为大家提供一些思路和参考。
三、mysql数据库如何存储图片文件
1、首先我们在设计数据库时,需要设置一个表来保存图片数据。
2、表中的一个列保存数据时,需要设置一个mediumblob的数据类型,这个类型每行可以保存16M大小的数据,这对于一般的图片来说,都已经够用了。
3、如果有图片比这个更大的,则可以使用longblob的类型。这个可以保存4G的大小。
4、接着在php代码中,我们获得上传的图片文件后,使用全局变量_Files来得到上传文件的路径。
5、然后使用file_get_contents方法获得这个文件的二进制数据。
6、通过sql把二进制数据保存到对应的图片表。
7、按上方的方法就可以把图片保存到mysql数据库中了。上文的关键代码都是以php的语法的,其他语言的可以参考这里的。