通行证: 用户 密码 域名空间  下载中心 社区论坛 信息公告 my小屋
联系我们
设为首页
加入收藏

 

qq,asp,php,jsp,xml,sql,.net,编程 程序 网页图象 建站经验 私服
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿
论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图
专题 | 应用软件 | 聊天通讯 | q q 专栏 | 建站经验 | 在线工具 | 站长club | 注 册 表 | 旧版
社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 韩国素材 | 素材图库 | 广告服务 | 服务
当前位置:首页>>在线服务>>疑难解答>>正文 新版上线![旧版]
注:打开慢时请稍等

把附件(word、excel、pdf)或图片存贮到数据库的完整范例程序。(mysql、sql server、oracle)三个版本

http://www.iyit.net  日期:2006-10-6 15:30:23  来源:iyit.net收集  点击:
参加讨论
常有人问起关于把附件(word、excel、pdf)或图片存贮到数据库的问题,本人也曾深受其扰。特将范例程序整理出来,包括sql  server、oracle、mysql三个版本,供参考。  
 
1、for  sql  server  (存放文件的字段的类型为text,一定要把php.ini中mssql.textlimit与mssql.textsize前面的分号去掉,并且值设置大一点.此问题是由phpteamk兄解决的)  
保存入库程序:  
if($upfile!=''){    
   $psize  =  filesize($upfile);  
   $fp=fopen($upfile,  "rb");  
   $mssqldoc  =  base64_encode(fread($fp,  $psize));  
   $upfiletype  =  strtolower(substr(  strrchr(  $upfile_name,  "."  ),  1  )  );  
   fclose($fp);  
                                                 
   mssql_connect("localhost",  "sa",  "mypassword")  or    
   die("unable  to  connect  to  sql  server");    
   @mssql_select_db("db")  or  die("unable  to  select  database");  
   $sql1="select  *  from  document  where  do_code=$ar_slavecode";              
   $result=mssql_query($sql1);  
   if  ($row=mssql_fetch_array($result))  
   {                                                              
           $sql="update  document  set  do_file=  ('$mssqldoc'),do_timeadded=getdate(),do_type='$upfiletype'  ";  
           $sql.="  where  do_code=$ar_slavecode  ";                                      
   }  
   else  
   {                                                  
                 $sql="insert  into  document  (do_code,do_file,do_timeadded,do_type)  values  (";  
                 $sql.="$ar_slavecode,('$mssqldoc'),getdate(),'$upfiletype')";              
   }              
                                                             
   mssql_query($sql);  
从数据库调出显示程序:  
$sql="select  do_file,do_type  from  document  where  do_code='$id'";            $result  =  mssql_query($sql);  
$row  =  mssql_fetch_array($result);  
$data=base64_decode($row[do_file]);  
$type=strtoupper($row[do_type]);  
if  ($type=="doc")                          
             header("content-type:application/msword");  
else  if($type=="xls")  
             header("content-type:application/x-msexcel");  
else  if($type=="pdf")  
           header("content-type:application/pdf");  
else  
           header("content-disposition:attachment");  
                         
echo  $data;    
 
2、for  mssql  
字段类型为blob。假定文件上传域的名称为picture。    
保存图片:      
 <?  if($picture  !=  "none")  {  $psize  =  filesize($picture);  $mysqlpicture  =  addslashes    
(fread(fopen($picture,  "r"),  $psize));  mysql_connect($host,$username,$password)  or    
die("unable  to  connect  to  sql  server");  @mysql_select_db($db)  or  die("unable  to    
select  database");  mysql_query("insert  into  images  (image)    
values  '($mysqlpicture')")  or  die("can't  perform  query");  }  else  {  echo"you  did  not    
upload  any  picture";  }  ?>    
首先,我们通过“if($picture  !=  "none")”检    
查是否有文件被上传。然后,使用addslashes()函数避免出现数据格式错误。最后,连接mysql,    
选择数据库并插入图片。  
   
显示图片  :  
<html>  <body>  <?  mysql_connect($host,$username,$password)  or  die("unable  to    
connect  to  sql  server");  @mysql_select_db($db)  or  die("unable  to  select  database");    
$result=mysql_query("select  *  from  images")  or  die("can't  perform  query");  while    
($row=mysql_fetch_object($result))  {  echo  "<img  src=\"second.php3?  picnum=$row-    
>picnum\">";  }  ?>  </body>  </html>    
 second.php3文件如下:        
 <?  $result=mysql_query("select  *  from  images  where  picnum=$picnum")  or  die("can't    
perform  query");  $row=mysql_fetch_object($result);  header(  "content-type:    
image/gif");  echo  $row->image;  ?>    
 
3、for  oracle  
字段类型为blob。  
保存程序:  
$conn=ocilogon("db",  "password",  "database");    
if($upfile!='none')    
{                                                                  
                   $upfiletype  =  strtolower(substr(  strrchr(  $upfile_name,  "."  ),  1  )  );                                                    
                   $sql="insert  into  commondocument  (cd_file,cd_timeadded,cd_condition,cd_version,cd_type)  values  (";  
               $sql.="empty_blob(),sysdate,'$code','$cd_version','$upfiletype')  returning  cd_file  into  :cd_file";              
                       //echo  $sql;                      
                       $blob_body  =  ocinewdescriptor($conn,  oci_d_lob);    
               $stmt  =  ociparse($conn,  $sql);    
               ocibindbyname($stmt,  ":cd_file",  &$blob_body,  -1,  oci_b_blob);    
               ociexecute($stmt,oci_default);                                                                
                       $fp  =  fopen($upfile,  "r"  );    
                   $blob_body->save(fread($fp,  filesize($upfile  )  )  );                            
               ocicommit($conn);                                                                                                                
}                          
             
显示程序:  
.....  
echo  "<a  href='test2.php?id=$slavecode'>测试文件</a>";  
......  
-----test2.php----  
 
$conn=ocilogon("oa",  "select",  "orcl");                            
$sql="select  cd_file,cd_type  from  commondocument  where  cd_code='$id'  and  cd_condition='$condition'";  
$stmt  =  ociparse($conn,$sql);    
ociexecute($stmt);                            
ocicommit($conn);    
ocifetchinto($stmt,  $row,  oci_return_lobs);    
ocifreestatement($stmt);    
ocilogoff($conn);                            
$ty  
---------------------------------------------------------------  
 
晕,居然把我名字也打错!

编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:有谁知道去除一个文本中的所有空格,用php或者javascript。
下一篇:目录问题: 如何判断 ./ ../111/ ../../abc/111/是指的同一个目录???
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

 相关文章
我在windows  xp上安装apache2.044+php 我只是想在本地机上学习php ,还要安装 怎么删除mysql???
怎么样修改mysql安装后的root空密码? 在win2k下如何安装apache、mysql、php? php接受sqlserver存储过程的返回值问题
mysql下的全文检索代码 php+sqlserver分页最简单方法 一个困扰我的问题,mysql的时间问题。
怎么将图片存入mysql数据库? 请问在mysql中如何生成临时表哪? 一个简单的mysql数据库分页的程序模板(
mysql数据库区分大小怎么解决? 如何再mysql中存储数组? 使用php和mysql保存和显示图片的全过程
php将mysql中jpeg图片取出后如何直接缩 如何将mysql中的数据导入到excel中?? winodws下iis/apache+php+mysql的安装配
使用apache 2和mysql 4.1.3安装php 5.0 iis与sql服务器安全加固详解 远程连接mysql资料
mysql密码忘记的修改 mysql初学者使用指南 mysql数据库连接过多的错误,可能的原因
最新更新 热点排行 推荐新闻
我在windows  xp上安装apache2.044+ph
apache+php,怎样打开session支持??
在linux中怎么配置pdflib和php  高分!
怎么样同时解释.php和.php3的文件呀,
php 4.1.0 及以后版本使用post变量的接
我在windows  xp上安装apache2.044+ph
apache+php,怎样打开session支持??
在linux中怎么配置pdflib和php  高分!
怎么样同时解释.php和.php3的文件呀,
php 4.1.0 及以后版本使用post变量的接
apache2-win32+php的成功安装方法
我只是想在本地机上学习php ,还要安装
装了php。运行时出现在以下提示
如何安装apache2.0
怎么删除mysql???
我在windows  xp上安装apache2.044+ph
apache+php,怎样打开session支持??
如何实现注册时的确认码功能
请帮忙解决,图随机上传,不限量,定位
有没有很好方法,获得在线登陆用户名单
qq密码被盗怎么办!我教你找回密码
如何控制我的电脑只允许登录我自己的q
qq2006 beta3隆重发布 实用功能一一奉
美国微软总部相中重庆15岁网络奇才(图
百度声明称遭受有史以来最大规模黑客攻
被删除系统文件恢复全攻略
使用身份验证来禁止内部用户上网 
国内首次发现带有感染文件特征盗号病毒
06年08月31日石家庄太和 内存报价
用css控制透明图片 
exeplorer.exe错误的问题的总结、解决
三分钟让你的系统变处女:acronis tru
让你的密码成为黑客的“耻辱”
比较sql server2005和oracle 10g r2
比较sql server2005和oracle 10g r2
sql server2005的xml数据类型之基础篇
sql server服务器的“偷梁换柱”
在win2003下mysql数据库每天自动备份
win2000 apache php mysql 安装及安全
mysql账户相关
快速安装windows操作系统独家秘籍
 友情链接
设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
copyrights © 2004-2006 iyit.net all rights reserved.
网站合作、广告联系qq:147007642、466949678
易特网络技术 点击这里给我发消息