小文件php+SQLite存储方案

时间:2022-03-19 13:12:27

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

现在公开代码: 
创建数据库文件:php1.php 

复制代码代码如下:


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

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