小文件php+SQLite存储方案

  我们草根站长购买的虚拟主机往往都有文件数量限制,大量小文件占用大量资源,落伍精华区也有兄弟推荐豆瓣的解决方法,但是要有主机权限。只能另装思路,采用php+SQLite解决问题,经过我测试,切实可行,现在推荐给大家。

  现在公开代码:

  创建数据库文件:php1.php

  

复制代码 代码如下:

  $db = new SQLite3('mysqlitedb.db');

  //获取文件2进制流

  $filename = "http://www.glzy8.com/logo.gif";

  $handle = fopen($filename, "r");

  $contents = fread($handle, filesize ($filename));

  fclose($handle);

  //创建数据表

  $db->exec('CREATE TABLE person (idnum TEXT,name TEXT,photo BLOB)');

  $stmt = $db->prepare("INSERT INTO person VALUES ('41042119720101001X', '张三',?)");

  $stmt->bindValue(1, $contents, SQLITE3_BLOB);

  $stmt->execute();

  读数据文件:php2.php

  

复制代码 代码如下:

  <?php

  $pdo = new SQLite3('mysqlitedb.db');

  $results = $pdo->query('select * from person');

  while ($row = $results->fetchArray()) {

  ob_start();

  header("Content-Type: image/jpg");

  echo $row['photo'] ;

  ob_end_flush();

  }

  ?>

  网页引用:

  

复制代码 代码如下:

  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

  <html xmlns="http://www.w3.org/1999/xhtml">

  <head>

  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

  <title>ANSYS教程</title>

  </head>

  <body>

  <img src="http://www.glzy8.com/info.php" width="22" height="30" />

  </body>

  </html>