重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
图片的存储有两种:
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、微信小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了腾冲免费建站欢迎大家使用!
*(1)存储字符串类型的图片的地址 显示页面使用image标签
*(2)数据库有一种类型累Blok(不知道也错没)还有好多大类型,使用这个来存储
,但他存储的是2进制,在存储前先使用io读取图片,转成2进制,然后就可以存储在数据库中,
读取时也是用io
有两种方法,
一种是只存图片所放在服务器的路径,只要存放varchar格式就可以了。
这种方法比较好。不占用数据库太大,但是服务器需要解析路径。
一种是存放二进制的数据Image类型。sqlserver提供了。在程序中要用流文件的形式,以下是我在网上找到的资料,希望对你有帮助:
保存images进SQL Server数据库
为了保存图片到table你首先得从客户端上传它们到你的web服务器。你可以创建一个web form,用TextBox得到图片的标题,用HTML File Server Control得到图片文件。确信你设定了Form的encType属性为multipart/form-data。
Stream imgdatastream = File1.PostedFile.InputStream;
int imgdatalen = File1.PostedFile.ContentLength;
string imgtype = File1.PostedFile.ContentType;
string imgtitle = TextBox1.Text;
byte[] imgdata = new byte[imgdatalen];
int n = imgdatastream.Read(imgdata,0,imgdatalen);
string connstr=
((NameValueCollection)Context.GetConfig
("appSettings"))["connstr"];
SqlConnection connection = new SqlConnection(connstr);
SqlCommand command = new SqlCommand
("INSERT INTO ImageStore(imgtitle,imgtype,imgdata)
VALUES ( @imgtitle, @imgtype,@imgdata )", connection );
SqlParameter paramTitle = new SqlParameter
("@imgtitle", SqlDbType.VarChar,50 );
paramTitle.Value = imgtitle;
command.Parameters.Add( paramTitle);
SqlParameter paramData = new SqlParameter
( "@imgdata", SqlDbType.Image );
paramData.Value = imgdata;
command.Parameters.Add( paramData );
SqlParameter paramType = new SqlParameter
( "@imgtype", SqlDbType.VarChar,50 );
paramType.Value = imgtype;
command.Parameters.Add( paramType );
connection.Open();
int numRowsAffected = command.ExecuteNonQuery();
connection.Close();
呵呵,这个问题我喜欢。以前我一直也存在这样的疑问。
既然存在IMAGE类型,为什么不能存储图片呢?
后来查了很多资料,都发现很避讳直接回答这问题。
这是我一点心得,只是我自己理解的。
存储图片在SQL中不如设置一个NVARCHAR来存储地址好些。因为在调用数据库时,调用一条字段来读取地址,比直接从数据库中调出大字节的字段速度快很多。
如果真的想用SQL来存储图片,那我知道的,可以在不同的语言中,以不同的方式来实现。有C#,DEPHIN,VB都可以。但是写成一个过程来在应用程序中实现的。
不知道我说的对你有帮助没。谢谢了
你可以把表的类型
设计 成为二进制类型.
Binary 类型:
数据类型 描述
bit 允许 0、1 或 NULL
binary(n) 固定长度的二进制数据。最多 8,000 字节。
varbinary(n) 可变长度的二进制数据。最多 8,000 字节。
varbinary(max) 可变长度的二进制数据。最多 2GB 字节。
image 可变长度的二进制数据。最多 2GB。
不过我个人觉得,把图片 ,存到数据,会使数据库的数据,增长的很快.
不是很建议这样做.
可以把图片 存到服务器上的某个路径 下..
1、首先可以存储图片链接,设置图片链接字段,如下图所示。
2、接着直接将图片的链接添加到SQL数据表的字段里即可,如下图所示。
3、或者用二进制存储图片字段,在SQL Server数据库中先制作成image字段。
4、接着在后台通过代码形式,将图片转化为二进制,如下图所示。
5、得到二进制数据后,则可通过sql语句插入到数据表中。
6、数据表即可存储了图片字段,将二进制转化为图片。