通常对用户上传的需要保存到数据库中。解决方法一般有两种:一种是将保存的路径存储到数据库;另一种是将以二进制数据流的形式直接写入数据库字段中。以下为具体方法:
一、保存的上传路径到数据库:
string uppath="";//用于保存上传路径
//获取上传的文件名
string fileFullname = thisFileUpload1FileName;
//获取上传的时间,以时间作为的名字可以防止重名
string dataName = DateTimeNowToString("yyyyMMddhhmmss");
//获取的文件名(不含扩展名)
string fileName = fileFullnameSubstring(fileFullnameLastIndexOf("\\") + 1);
//获取扩展名
string type = fileFullnameSubstring(fileFullnameLastIndexOf("") + 1);
//判断是否为要求的格式
if (type == "bmp" || type == "jpg" || type == "jpeg" || type == "gif" || type == "JPG" || type == "JPEG" || type == "BMP" || type == "GIF")
{
//将上传到指定路径的文件夹
thisFileUpload1SaveAs(ServerMapPath("~/upload") + "\\" + dataName + "" + type);
//将路径保存到变量,将该变量的值保存到数据库相应字段即可
uppath = "~/upload/" + dataName + "" + type;
}
二、将以二进制数据流直接保存到数据库:
引用如下命名空间:
using SystemDrawing;
using SystemIO;
using SystemDataSqlClient;
设计数据库时,表中相应的字段类型为iamge
保存:
//路径
string strPath = thisFileUpload1PostedFileFileNameToString ();
//读取
FileStream fs = new SystemIOFileStream(strPath, FileModeOpen, FileAccessRead);
BinaryReader br = new BinaryReader(fs);
byte[] photo = brReadBytes((int)fsLength);
brClose();
fsClose();
//存入
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);
myCommParametersAdd("@photoBinary", SqlDbTypeBinary, photoLength);
myCommParameters["@photoBinary"]Value = photo;
myConnOpen();
if (myCommExecuteNonQuery() > 0)
{
thisLabel1Text = "ok";
}
myConnClose();
读取:
连接数据库字符串省略
myconOpen();
SqlCommand command = new
SqlCommand("select stuimage from stuInfo where stuid=107", mycon);//查询语句根据需要修改
byte[] image = (byte[])commandExecuteScalar ();
//指定从数据库读取出来的的保存路径及名字
string strPath = "~/Upload/zhangsanJPG";
string strPhotoPath = ServerMapPath(strPath);
//按上面的路径与名字保存文件
BinaryWriter bw = new BinaryWriter(FileOpen(strPhotoPath,FileModeOpenOrCreate));
bwWrite(image);
bwClose();
//显示
thisImage1ImageUrl = strPath;
采用俩种方式可以根据实际需求灵活选择。
在电脑安装 SQLiteDeveloper,安装后在桌面生成图标,点击图标打开程序。
打开程序后,可以看到程序左边的“数据库列表”。展开可以查看到所有打开过的数据库。
点击一个db文件,把这个db直接拖拉进程序窗口。
显示“注册数据库”,点击确定,这样就可以用 SQLiteDeveloper管理这个db文件了。
展开左边数据库列表,找到刚才注册的db文件。点击右键菜单的打开数据库。
打开数据库后可以看到这个db文件中有很多的数据表,选择其中一个,右键点击查询数据。则可以查看这个表的数据内容。
数据库看完后记得关闭数据库。否则这个db文件公被程序占用不能移动与删除。
多媒体数据库是一个由若干多媒体对象所构成的集合,这些数据对象按一定的方式被组织在一起,可为其他应用所共享。
多媒体数据库是能够有效实现多媒体数据的存储、读取、检索等功能的数据库系统,它继承了传统数据库的一些优点,并能对具有时空关系的数据进行同步和管理。
多媒体数据的特点:
1、数据量巨大且媒体之间量的差异十分明显,而使得数据在库中的组织方法和存储方法复杂。
2、媒体种类的繁多使得数据处理变得非常复杂。前边介绍了4种多媒体数据,而实际上,在具体实现时,常常根据系统定义、标准转换而演变成几十种媒体形式。
3、多媒体不仅改变了数据库的接口,使其声、图、文并茂,而且也改变了数据库的 *** 纵形式,其中最重要的是查询机制和查询方法。
媒体的复合、分散、时序性质及其形象化的特点,使得查询不再只是通过字符查询,查询的结果也不仅是一张表,而是多媒体的一组“表现”。接口的多媒体化将对查询提出更复杂、更友好的设计要求。
扩展资料
多媒体数据库的核心是数据模型,从总体发展上看,多媒体数据库的数据模型可分为如下3类:
1、关系数据模型
关系数据模型以关系代数作为其理论基础,发展至今已能够非常完善的处理传统的结构化数据。但是多媒体数据库里包含了大量的图形、图像、声音和视频等非结构化数据,这些数据结构异常复杂,且大部分不能用关系模型表示。
2、面向对象数据模型
面向对象数据模型对非结构化数据进行表示和 *** 作非常方便,但是其技术没有关系数据模型那样成熟,理论研究和应用开发中还有很多问题需要解决。并且需要从底层重写代码,开发工作量大、周期长,由于这些问题的局限。
使用面向对象数据模型开发多媒体数据库系统还主要应用在大公司指定开发的专用项目上,对于一般多媒体数据库系统开发项目来说,应用面向对象数据库模型来进行开发,从技术和经济条件上来讲都是不适用的。
3、扩充的关系数据模型
使用扩充的关系数据模型来进行多媒体数据库系统的开发是当前最常用也是最成熟的方法。在传统的关系数据模型中引入了面向对象的思想、超文本(hypertex1)模型或超媒体方法,就解决了图形、图像、声音和视频等非结构化数据不能用关系模型表示的问题。
参考资料来源:百度百科-多媒体数据库
以上就是关于数据库可以存图片吗全部的内容,包括:数据库可以存图片吗、sql数据库插入图片的update语句、批量添加图片后怎么存入数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)