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

现在公开代码:
创建数据库文件:php1.php
复制代码 代码如下:
$db = new SQLite3("mysqlitedb.db");

//获取文件2进制流
$filename = "//www.yinxi.net/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="//www.yinxi.net/info.php" width="22" height="30" />
</body>
</html>