`
andrew1024
  • 浏览: 74828 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

用 PHP 和 MySQL 保存和输出图片

阅读更多
在我们设计和制作网站的过程中,有时把图片保存到数据库中要比存成文件的形式更加方便。和MySQL这对黄金组合可以很容易的实现上述功能。在本文中,我们将会向读者介绍如何把图片保存到MySQL数据库中以及如何将数据库中的图片显示出来。

  设置数据库
    我们通常在数据库中所使用的文本或整数类型的字段和需要用来保存图片的字段的不同之处就在于两者所需要保存的数据量不同。MySQL数据库使用专门的字段来保存大容量的数据,数据类型为BLOB。

    MySQL数据库为BLOB做出的定义如下:BLOB数据类型是一种大型的二进制对象,可以保存可变数量的数据。BLOB具有四种类型,分别是TINYBLOB,BLOB, MEDIUMBLOB 和LONGBLOB,区别在于各自所能够保存的最大数据长度不同。

    在介绍了所需要使用的数据类型之后,我们可以使用以下语句创建保存图象的数据表。
    CREATE TABLE Images ( PicNum int NOT NULL AUTO_INCREMENT PRIMARY KEY, Image BLOB );

  编写上传脚本 edu-cn.com
    关于如何实现文件的上传,我们在这里就不再介绍了,感兴趣的读者可以参见“网页陶吧”内的相关文章。现在,我们主要来看一下如何接收上传文件并将其存入到MySQL数据库中。具体的脚本代码如下,其中我们假定文件上传域的名称为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";
}
?>

    这样,我们就可以成功的把图片保存到数据库中。如果在将图片插入MySQL的过程中出现问题,可以检查一下MySQL数据库所允许的最大数据包的大小。如果设置值过小的话,我们会在数据库的错误日志中找到相应的记录。

    下面,我们简单说明一下上述脚本程序。首先,我们通过“If($Picture != "none")”检查是否有文件被上传。然后,使用addslashes()函数避免出现数据格式错误。最后,连接MySQL,选择数据库并插入图片。

www.edu4u.com.cn

  显示图片
    在知道了如何将图片存入数据库之后,我们就需要考虑怎样才能从数据库中取出图片并在HTML页面中显示出来。这个过程要稍微复杂一些,下面我们就来介绍一下实现过程。

  因为显示图片需要发送相应的标头,所以我们就会面临这样一个问题,那就是一次只能显示一副图片,因为我们无法在发出标头之后再发送其它的标头。

  为了有效的解决这一问题,我们编写了两个文件。其中,第一个文件作为HTML页面的模板,定位图片的显示位置。第二个文件则被用来从数据库中实际输出文件流,作为<IMG>标签的SRC属性。

  第一个文件的简单形式可以如下:

<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>
www.edu4u.com.cn

    当HTML页面被浏览时,每显示一副图片就会调用一次Second.php3文件。当第二个文件被调用时会传入相应的Picture ID,我们可以借此从数据库中取回对应的图片并显示。

  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;
?>
分享到:
评论

相关推荐

    php+mysql实现简单的新闻发布系统

    在本文中,我们将深入探讨如何使用PHP和MySQL构建一个简单的新闻发布系统。这个系统结合了AJAX、JSON以及富文本编辑器UEditor等技术,旨在帮助初学者理解和实践Web开发中的关键概念。 首先,PHP是一种广泛使用的...

    php+mysql相册

    创建一个`show_image.php`文件,根据传递的ID从数据库中获取文件名,然后输出图片: ```php &lt;?php $id = $_GET['id']; $query = "SELECT filename FROM album_photos WHERE id = $id"; $result = $db-&gt;query($query...

    PHP将图片存入数据库(MYSQL)

    - **混合存储**: 实际应用中,一般会结合数据库和文件系统,只存储图片的元数据(如路径、大小、名称等)在数据库,图片文件本身则保存在文件系统。 9. **安全考虑**: - 需要对上传的文件进行验证,防止恶意文件...

    使用PHP实现多张图片合成一张1

    完成所有图片的合成后,使用Imagejpeg()函数保存合并后的图片到(pin.jpg)。最后,在HTML中输出合成的图片,以便在网页上显示。 在网页测试阶段,启动Apache服务器,然后在浏览器中输入相应的文件地址(例如:...

    php与mysql写的简易博客 ~初学者必看!

    9. **安全最佳实践**:学习如何防止SQL注入和XSS攻击,使用预处理语句和转义输出。 总的来说,这个简易博客项目是学习Web开发基础的绝佳起点,通过实践可以巩固理论知识,提升动手能力。对于初学者来说,完成这样一...

    php图片上传并保存到数据库然后打印出来

    7. **输出图片**:一旦图片路径存储在数据库中,可以通过查询数据库获取图片路径,然后使用HTML的`&lt;img&gt;`标签显示图片。 8. **错误处理**:在上传过程中可能出现各种错误,如文件未上传、文件类型错误、磁盘空间...

    基于PHP的web star留言板系统(php+mysql).zip

    【标题】"基于PHP的web star留言板系统(php+mysql)"揭示了这是一个使用PHP编程语言和MySQL数据库构建的Web应用程序。PHP是一种广泛使用的开源脚本语言,特别适合于Web开发,可以嵌入到HTML中。MySQL则是一种流行的...

    信息发布系统源码基于PHP mysql

    例如,当用户提交新信息时,PHP会验证数据,然后将信息保存到MySQL数据库。 3. 数据库层:MySQL存储所有系统数据,包括用户账户、文章、评论等。通过优化的表结构和索引,确保数据查询的高效性。 【主要功能模块】 ...

    phpmysql在线考试系统

    PHPMySQL在线考试系统是基于PHP编程语言和MySQL数据库的一种动态网站应用,用于实现在线的考试、评分、结果查询等功能。PHP是一种广泛使用的服务器端脚本语言,尤其适合Web开发,而MySQL则是一种高效、可靠的开源...

    PHP生成word可下载(Mysql)

    - 生成的Word文件如果不需要长期保存,可以考虑使用内存中操作,减少磁盘IO。 5. **错误处理与用户体验** - 在整个过程中,应捕获可能的异常,提供友好的错误提示,避免暴露敏感信息。 - 提供进度反馈,比如通过...

    php带头像的留言板程序

    后端处理,如使用PHP的`$_FILES`全局变量获取上传文件的信息,然后将图片保存到服务器的特定目录,并可能进行重命名、缩放等操作以优化存储和显示;最后,保存图片路径到数据库,以便后续访问和显示。在这个项目中,...

    php 从数据库提取二进制图片的处理代码

    在给定的标题和描述中,我们看到一个名为`image.php`的文件,它的作用是从数据库中检索以二进制形式存储的图片,并将其作为图像文件输出到用户浏览器。 首先,让我们详细分析`image.php`的代码: ```php &lt;?php $...

    phpweb完美解决不能上传图片

    9. **调试技巧**:在修复过程中,可以添加临时的日志输出或使用调试工具来追踪代码执行流程,以快速定位问题所在。 通过以上步骤,大多数情况下可以解决PHPWeb后台不能上传图片的问题。不过,每个环境和项目都有其...

    php下将图片以二进制存入mysql数据库中并显示的实现代码

    // 输出图片二进制数据 echo $row-&gt;Image; ?&gt; ``` 在这个例子中,我们通过`$_GET['PicNum']`获取图片ID,然后查询数据库获取对应图片的二进制数据。设置正确的HTTP头来告诉浏览器这是一个图片资源,最后输出图片数据...

    基于PHP的玉人阁美女图片网站整站源码 php版.zip

    【标题】"基于PHP的玉人阁美女图片网站整站源码 php版.zip" 提供的是一个使用PHP语言开发的完整网站系统,主要用于展示和管理美女图片。这个源码可以帮助开发者快速搭建一个类似的图片分享平台,理解其工作原理或者...

    PHP将图片存入数据库代码

    在PHP开发中,将图片存入数据库是一种...在实际应用中,更推荐将图片存储在文件系统中,数据库仅保存图片的路径或URL,以平衡数据存储和访问速度。同时,为了提高用户体验,还可以考虑使用CDN服务来加速图片的加载。

    PHP实现给图片加图片水印1

    - 输出和保存图像:根据原图类型,使用相应的函数(如`imagegif`,`imagejpeg`或`imagepng`)输出并保存处理后的图像到指定路径。 - 释放资源:最后,使用`imagedestroy`函数释放内存中占用的图像资源。 四、代码...

    php加载和生成json和生成xml文件,并带有ajax分页效果,带图带数据库

    本文将深入探讨如何使用PHP加载和生成JSON以及XML文件,并结合AJAX实现分页效果,同时结合数据库和图片资源。 首先,让我们了解JSON(JavaScript Object Notation)和XML(Extensible Markup Language)。两者都是...

    php上传图片到数据库.zip

    一种常见的优化方案是将图片保存到文件系统,然后在数据库中存储文件路径,这样可以利用文件系统的缓存机制,减轻数据库压力。 总结来说,这个`php上传图片到数据库.zip`项目涵盖了从用户界面、文件上传处理、...

Global site tag (gtag.js) - Google Analytics