在线相册项目

PHP在线相册项目

【功能分析】

本项目具体实现功能:

  • 实现外网访问功能。

  • 可以重命名相册、相片

  • 可以移动相片到新的相册

  • 支持最大100m的图片上传,将图片保存到服务器,并提供一个URL来访问。

  • 使用MySQL数据库保存相册数据(相册结构,图片保存地址等)

  • 在一个相册内可以创建子相册,默认最多支持五级嵌套,且能够限制最多层级数。

  • 在相册中显示图片列表时,为避免图片文件过大造成页面打开缓慢,只显示缩略图。

  • 在浏览图片时,可以通过“上一张”,“下一张”按钮切换到本相册内的其他图片。

  • 支持相册和图片的删除,在删除相册时只允许删除空相册。

  • 可以将相册内的某张图片设置为相册封面。

  • 可以通过文件名来搜索相册中的图片。

 

【系统总体框架】

目录结构划分:

目录 解释
common 保存公共的 PHP 文件
css 保存项目的 CSS 文件
js 保存项目的 JavaScript 文件
view 保存项目的 HTML 文件
uploads 保存用户上传的图片
thumbs 保存图片的缩略图
covers 保存相册的封面图
文件 解释
index.php 提供相册的创建、展示、删除以及图片上传功能
show.php 提供图片查看功能
search.php 提供图片搜索功能

数据库设计:

1)相册表(album):

字段名 字段说明 字段类型 是否允许为空 备注
id 相册 id int 主键(自增)
pid 上级相册 id int
path 相册路径 text
name 相册名 varchar
cover 封面图地址 varchar
total 图片数 int

2)图片表(picture):

字段名 字段说明 字段类型 是否允许为空 备注
id 图片 id int 主键(自增)
pid 所属相册 id int
name 图片名 varchar
save 保存地址 varchar

【功能实现】

图片移动功能实现:

在index.html中添加button提交按钮以及遍历相册的select选项框

注意!select选项框提交数据不在option选项中,会给到select所以name=”action_pid”写在select中

在index.php中写具体提交前的格式规范以及调用具体移动实现

在album.php中写具体实现:

然后调用相册查找确保相册存在

如果相册存在执行

最后调用tip提示成功一下

图片重命名功能实现:

在index.html中添加一个input来接收重命名以及按钮来提交到重命名函数

再到index.php中写具体提交前的格式规范以及调用具体改名实现。

在album.php中写具体实现:

接下来先调用查找图片功能函数确保图片存在

如果图片存在执行db_exec()函数来返回结果

最后调用tip提示函数显示成功结果

相册重命名实现同理

图片搜索功能实现:

在HTML框架上创建form表单实现搜索的上传

在后台实现上引入项目的初始化文件并接收参数,代码如下。

利用 SQL 语句中的 LIKE 操作符进行搜索即可。需要注意的是,由于 LIKE 条件可以用“%”“_”进行模糊搜索,为了避免用户输入的内容和这些字符冲突,应该将这些字符进行转义。在 common\db.php 中编写 db_escape_like()函数,具体代码如下。

上述代码实现了转义用户可能输入的特殊字符“%”“_”和“\”。其中,“\”在 PHP 单引号字符串中 书写时,为了避免将右边的单引号转义,需要在“\”前面加一个“\”,而实际上只保存了一个“\”。

显示搜索结果的html:

前往PHP在线相册项目


欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1701220998@qq.com
导航页 GitHub