- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
上机实验 6 : 在 MySQL 中存储图片
本节拟将图片 ( 也可以是任何二进制数据 ) 直接保存到数据库中,通过调用数据库,便可以在网页中显示图片了。
在本节中,需要保存到数据库的图象文件是从浏览器所在的客户端上输入的,为在数据库中保存文件,首先需要在“ netsql ”数据库建立一个名为“ imgstore ”的表。表的结构如下:
id INT(4) NOT NULL AUTO_INCREMENT PRIMARY KEY // 文件存储的 id 号
descrp CHAR(50) // 对文件的描述
bindata LONGBLOB // 文件内容(二进制数据)
filename CHAR(50) // 文件名称
filesize CHAR(50) // 文件大小
fileiype CHAR(50) // 文件类型
例 6 - 21 的运行过程中是先执行表单的输入,选择输入的文件和对文件的描述,然后再将数据发给 Web 服务器,实际上执行了文件上载和在数据库存储的过程。但是,该网页一般来说要执行两次,第一次是表单输入,第二次发送数据。为实现方便,该程序设计时使用的是“倒装”结构,希望读者加以注意。
【例 6 - 21 】图形数据存储源程序 ( 为方便解释,这里加上了行号,这在实验时无须输入 ) 。
?? !-- 文件名: pict.php--
?? HTML
?? HEADTITLE 在 MySQL 中存储图片 /TITLE/HEAD
?? BODY
?? ?
?? @printf (Step0.$submit=.$submit.BR);
?? // 在语句中插入 @ 是为抑制告警信息显示,若读者希望了解 @ 在此的作用,可以在实验时将该符号取消
?? if(@$submit){
?? // 如果提交了表单,执行下面代码
?? $db=mysql_connect(localhost,root,sesame) or die( 数据库联接失败! );
?? mysql_create_db(netsql);
?? mysql_select_db(netsql); // 通过 PHP 选择当前数据库 netsql
?? $result=mysql_query(select id from imgstore); // 试从数据表取得测试参数
?? if (!$result) {
?? // 如果 count 表不存在,以下语句将通过 PHP 创建该表
?? $sql=create table imgstore(id INT(4) NOT NULL AUTO_INCREMENT PRIMARY KEY, descrp CHAR(50),bindata LONGBLOB,filename CHAR(50),filesize CHAR(50),filetype CHAR(50)) or die( 数据表创建失败! );
?? mysql_query($sql); }
?? $formdata_type=filetype($formdata); // 取得文件类型
?? $formdata_size=filesize($formdata); // 取得文件的大小
?? $formdata_name=$formdata; // 将表单传来的文件名传给相应的变量
?? echo step1.$formdata_type.$formdata_size.$formdata_name.$formdesc.BR;
?? $data = addslashes(fread(fopen($formdata,r), filesize($formdata)));
?? // 为了在 BLOB 字段中存入二进制数据,必须进行“脱敏”处理
?? // 这里用 addslashes() 将字串中必要的地方加上转义符 /
?? $sql=INSERT INTO imgstore VALUES (NULL, $formdesc, $data,
?? $formdata_name, $formdata_size, $formdata_type) ;
?? echo step2.$sql.BR;
?? $result=mysql_query($sql) or die( 数据插入失败 );
?? $id= mysql_insert_id();
?? print pThis file has the following Database ID. b$id/b;
?? mysql_close();
?? }
?? else {
?? // 否则显示储存数据的表单
?? ?
?? form
文档评论(0)