sql数据库存储图片路径
A. 我用的是sql数据库 ,图片是存图片,还是存图片的路径,哪个好。
SQL SERVER的数据库吧?个人建议存图片的路径。因为很多开发都是这么做的。不仅是出于习惯,而且保存图片路径,很更快定位。而如果你保存图片,估计这个时间花费是很大的,查询速度肯定是会很慢的。保存成路径,查询到以后,直接过去调用,这样省时又省力。而且现在很多网站用的图片都是大容量的高清图片,如果存成图片,你想想数据库要有多大呢?
B. 怎么样把图片存放到SQL SERVER 数据库中
通常对用户上传的图片需要保存到数据库中。解决方法一般有两种:一种是将图片保存的路径存储到数据库;另一种是将图片以二进制数据流的形式直接写入数据库字段中。以下为具体方法:
一、保存图片的上传路径到数据库:
string uppath="";//用于保存图片上传路径
//获取上传图片的文件名
string fileFullname = this.FileUpload1.FileName;
//获取图片上传的时间,以时间作为图片的名字可以防止图片重名
string dataName = DateTime.Now.ToString("MMddhhmmss");
//获取图片的文件名(不含扩展名)
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;
}
二、将图片以二进制数据流直接保存到数据库:
引用如下命名空间:
using System.Drawing;
using System.IO;
using System.Data.SqlClient;
设计数据库时,表中相应的字段类型为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 )";//操作数据库语句根据需要修改
SqlCommand myComm = new SqlCommand(strComm, myConn);
myComm.Parameters.Add("@photoBinary", SqlDbType.Binary, photo.Length);
myComm.Parameters["@photoBinary"].Value = photo;
myConn.Open();
if (myComm.ExecuteNonQuery() > 0)
{
this.Label1.Text = "ok";
}
myConn.Close();
读取:
...连接数据库字符串省略
mycon.Open();
SqlCommand command = new
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));
bw.Write(image);
bw.Close();
//显示图片
this.Image1.ImageUrl = strPath;
采用俩种方式可以根据实际需求灵活选择。
C. mysql数据库怎么用sql指令存入图片路径
在数据库中,创建一张data表,用于测试。
D. 如何在sql server中存储图片
1、首先可以存储图片链接,设置图片链接字段,如下图所示。
E. sql数据库中如何存放图片相对路径(不用代码)
那具体还要看你文件访问图片的代码在哪一层目录,假如是在根目录,这样写就可以了'./image/1.jpg',图片在sql的字段设置为字符串类型,把路径作为字符串写进数据库就可以了
F. sql保存图片路径,及客户端读取
sql保存文件或者图片
1.
用byte[]
二进制流保存
在转换成文件。
2.
直接保存文件路径。
客户端如何显示
主要是对路径的一个操作,看看文件尾缀转换成图标,文件名称。
在进行下载之类的操作
G. SQL中怎么存图片路径
不知道说的对不对。
如果你是想在数据库中保存图片的路径的话,完全可以用varchar类型的,然后保存一个项目中图片的相对路径即可。
但如果你是想把整个图片都保存到数据库的话那就只得用image类型了。
建议不要在数据库中保存图片,那样读写很费资源。
H. SQL数据库用甚么字段存储图片路径
当然是用VARCHAR来作为存储路径的字段类型咯,大小应该设为
255
。
char是字符型的,要自己指定大小
text是用来存放文本的,大小由系统指定为16,但是文本实际上不是
存储在表中,而是存在系统分配的页中,这些用户不用管
网络上找到的资料
I. sql数据库中如何存放图片相对路径(不用代码)
1、在打开【SQL Server Managemenet Studio】窗口,在【对象资源管理器】窗口依次站看【数据库】——【新建的数据库】节点。
J. SQL数据库中图片的地址如何存储的
算了,你问这些问题真难答呢,首先你也不说是C/s程序还是B/s程序,总就一个要代码,总不成连数据库联接什么的都要写出来吧。也不知道你要的是哪一种方式,难道别人帮你还得两种都得完完整整写给你吗?
这是我以前写的你看一下不懂直接加QQ;
1、首先从文件中读取要加到数据库中的图片,将它转换成byte[]类型,这样就可以加到数据库中去了。
FileStream fs = new FileStream(openPicForRead.FileName, FileMode.OpenOrCreate, FileAccess.Read);
MyData = new byte[fs.Length];
fs.Read(MyData, 0, Convert.ToInt32(fs.Length));
fs.Close();
2、从数据库中读取出来并在PictrueBox中显示,用下面这种方法比较重要,如果用FileForm生成临时文件的话如果打开第二次时就会提示文件正在使用。注意一定要用MemoryStream。
byte[] readimage = new byte[0];
int piccount = DataBind.Tables["T_Equipment"].Rows.Count;
readimage = (byte[])DataBind.Tables["T_Equipment"].Rows[piccount-1]["Photo"];
if (readimage.Length !=0)
{
MemoryStream stmBLOBData = new MemoryStream(readimage);
picEquipment.Image = Image.FromStream(stmBLOBData);
}
3、将PictureBox.Image加到数据库中,为什么要提到这一点呢?因为在修改一条记录时可能不会修改它的图像字段,所以只能把它的显示结果重新写回去,当然也可以在Update时不修改它。
MyData = new byte[0];
MemoryStream ms=new MemoryStream();
PictureBox1.Image.Save(ms,ImageFormat.Jpeg);
MyData = ms.GetBuffer();
最后将MyData写回去。
第三条的命名空间为using System.Drawing.Imaging;