支付方式  联系我们   网站地图       
首页 关于域浪 互联网数据中心业务、主机托管、主机租用、机架租用、带宽租用、机房介绍、机房对比、CCN网络加速 adsl专线、深圳adsl专线 虚拟主机、域名注册、数据库、企业邮局、动态域名 网络安全、网络临近平台、安全服务、防火去墙租用、安全产品、域浪抗DDOS防火墙、NetScreen防火墙 技术支持  
   当前位置:首页 >> 技术支持 >> MySQL数据库技术 >> 怎样在MySQL中直接储存图片
 
精华文章
    Mysql服务器的启动与停...  
    Mysql服务器的启动与停...  
    图解MySQL数据库的安装...  
    图解MySQL数据库的安装...  
    怎样在MySQL中直接储存...  
    MySQL数据库常见错误问...  
    MySQL数据库常见错误问...  
    MySQL数据库常见错误问...  
    MySQL出错代码含义列表...  
    如何学习MySQL数据库 ...  
    Linux 应用集成 MySQL...  
    如何从 MySQL 数据库表...  
    在服务器上安装、使用...  
    在CU上整理的MySQL的常...  
    教你如何在Linux/Unix...  
    MySQL 中修改密码及访...  
    其他主题  
    处理查询  
    客户机程序4—在运行时...  
    客户机程序3—产生连接...  
    客户机程序2—增加错误...  
    客户机程序1—连接到服...  
    MySQL数据导入与导出  
    mysql新手指南  
    SQL Server疑难排除步...  
    如何设置数据库  
  更多>>  
   MySQL数据库技术
 怎样在MySQL中直接储存图片
如果你想把二进制的数据,比如说图片文件和HTML文件,直接保存在你的MySQL数据库,那么这篇文章就是为你而写的!我将告诉你怎样通过HTML表单来储存这些文件,怎样访问和使用这些文件。 

  本文概述:  

  在mysql中建立一个新的数据库  

  一个怎样储存文件的例子程序  

  一个怎样访问文件的例子程序  

  在mysql中建立一个新的database 

   首先,你必须在你的mysql中建立一个新的数据库,我们将会把那些二进制文件储存在这个数据库里。在例子中我会使用下列结构,为了建立数据库,你必须做下列步骤:  

  进入MySql控制器  

  输入命令"create database binary_data;"  

  输入命令"use binary_data;"  

  输入命令"CREATE TABLE binary_data ( id INT  (4) NOT NULL AUTO_INCREMENT PRIMARY KEY, 

description CHAR(50), bin_data LONGBLOB, filename CHAR(50), filesize CHAR  (50), filetype CHAR(50));" (不能断行)  

  如果没有意外,数据库 和 表 应该建立好了。  

  一个怎样储存文件的例子程序 用这个例子你可以通过Html表单将文件传输到数据库中。. 



store.php3 以下为引用的内容:



// store.php3 - by Florian Dittmer  

?> 

// 如果提交了表单,代码将被执行: 



if ($submit) { 



     // 连接到数据库 

     // (你可能需要调整主机名,用户名和密码) 



    MYSQL_CONNECT( "localhost", "root", "password"); 

    mysql_select_db( "binary_data"); 



    $data = addslashes(fread(fopen($form_data,  "r"), filesize($form_data))); 



    $result=MYSQL_QUERY( "INSERT INTO binary_data (description,bin_data,filename,filesize,filetype) ". 

         "VALUES (’$form_description’,’$data’,’$form_data_name’,’$form_data_size’,’$form_data_type’)"); 



    $id= mysql_insert_id(); 

    print  "

This file has the following Database ID: $id"; 



    MYSQL_CLOSE(); 



} else { 



     // 否则显示储存新数据的表单 

?> 



     

    File Description:



File to upload/store in database:







?> 

如果你执行了这个程序,你将会看见一个简单的Html表单,单击“浏览”选择一个文件,然后单击提交。 

  当文件上传至web服务器之后,程序将会告诉你刚刚上传的文件的ID,记住这个ID,待会要用的。 

  一个怎样访问文件的例子程序 

  你可以通过这个程序访问你刚才储存的文件 

以下为引用的内容:



// getdata.php3 - by Florian Dittmer  

// 调用方法: getdata.php3?id= 



if($id) { 



     // 你可能需要调整主机名,用户名和密码: 

    @MYSQL_CONNECT( "localhost", "root", "password"); 



    @mysql_select_db( "binary_data"); 



    $query =  "select bin_data,filetype from binary_data where id=$id"; 

    $result = @MYSQL_QUERY($query); 



    $data = @MYSQL_RESULT($result,0, "bin_data"); 

    $type = @MYSQL_RESULT($result,0, "filetype"); 



    Header(  "Content-type: $type"); 

    echo $data; 



}; 

?> 

  程序必须知道要访问那个文件, 你必须将ID作为一个参数。 

  例如: 一个文件在数据库中的ID为2. 你可以这样调用它: 

                    getdata.php3?id=2如果你将图片储存在数据库里, 你可以向调用图片一样调用它。 

  Example: 一个图片文件在数据库中的ID为3. 你可以这样调用它: 

                     

  怎样储存大于1MB的文件: 

  如果你想储存大于1MB的文件,你必须对你的程序、PHP设置、SQL设置进行许多修改,。 

  下面几条也许可以帮助你储存小于24MB的文件: 

  修改 store.php3 ,将 MAX_FILE_SIZE 的值改成 24000000。  

  修改你的PHP设置,在一般情况下,PHP只允许小于2MB的文件,你必须将max_filesize(在php.ini中)的值改成24000000 



  去掉MYSQL的数据包大小限制,在一般情况下 MYSQL 小于1 MB的数据包.  

  你必须用以下参数重启你的MYSQL 

  /usr/local/bin/safe_mysqld -O key_buffer=16M -O table_cache=128 -O sort_buffer=4M -O record_buffer=1M -O max_allowed_packet=24M  

  • 上一篇文章: 图解MySQL数据库的安装和操作 (1)
  • 下一篇文章: MySQL数据库常见错误问题解答 (3)
  • 深圳地址:深圳市罗湖区宝安北路国际商品交易大厦七楼C30室
    Tel:0755-82266883/82267566 Fax:0755-82261966
    邮编:518000 
                        Copyright © 2006-2008 elang.cn All Rights Reserved 深圳市域浪网络技术有限公司版权所有