jokyo3 commited on
Commit
aee294d
·
verified ·
1 Parent(s): 6a908b3

Create manage_albums.php

Browse files
Files changed (1) hide show
  1. manage_albums.php +154 -0
manage_albums.php ADDED
@@ -0,0 +1,154 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ session_start(); // 开始会话
3
+
4
+ $albumDir = 'albums/';
5
+ $albums = glob($albumDir . '*.txt');
6
+ $correctPassword = 'addroot'; // 设置固定的口令
7
+
8
+ // 处理备份相册的操作
9
+ if (isset($_POST['backup']) && isset($_SESSION['password']) && $_SESSION['password'] === $correctPassword) {
10
+ $zip = new ZipArchive();
11
+ $backupFileName = $albumDir . 'backup_' . date('YmdHis') . '.zip';
12
+ if ($zip->open($backupFileName, ZipArchive::CREATE) === TRUE) {
13
+ foreach ($albums as $album) {
14
+ $zip->addFile($album, basename($album));
15
+ }
16
+ $zip->close();
17
+
18
+ // 触发下载
19
+ header('Content-Type: application/zip');
20
+ header('Content-Disposition: attachment; filename="' . basename($backupFileName) . '"');
21
+ header('Content-Length: ' . filesize($backupFileName));
22
+ ob_clean(); // 清除缓冲区
23
+ flush(); // 刷新输出缓冲
24
+ readfile($backupFileName);
25
+ // 删除服务器上的备份文件
26
+ unlink($backupFileName);
27
+ exit;
28
+ } else {
29
+ echo "<p>备份失败。</p>";
30
+ }
31
+ }
32
+
33
+ // 检查会话中的口令或表单提交的口令
34
+ if (isset($_SESSION['password']) && $_SESSION['password'] === $correctPassword) {
35
+ // 口令正确,显示管理界面
36
+
37
+ // 显示备份按钮和返回首页按钮
38
+ echo "<div style='display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px;'>";
39
+ echo "<a href='index.php' style='text-decoration: none;'>";
40
+ echo "<button type='button'>返回首页</button>";
41
+ echo "</a>";
42
+ echo "<form method='post'>";
43
+ echo "<input type='submit' name='backup' value='备份相册'>";
44
+ echo "</form>";
45
+ echo "</div>";
46
+
47
+ // 处理创建新相册的操作
48
+ if (isset($_POST['create']) && !empty($_POST['newAlbumName'])) {
49
+ $newAlbumName = trim($_POST['newAlbumName']);
50
+ $newAlbumFile = $albumDir . $newAlbumName . '.txt';
51
+ if (!file_exists($newAlbumFile)) {
52
+ file_put_contents($newAlbumFile, '');
53
+ echo "<p>新相册 '{$newAlbumName}' 创建成功。</p>";
54
+ } else {
55
+ echo "<p>相册 '{$newAlbumName}' 已存在。</p>";
56
+ }
57
+ }
58
+
59
+ // 如果设置了album参数,显示相册内容管理界面
60
+ if (isset($_GET['album'])) {
61
+ $albumName = basename($_GET['album'], '.txt');
62
+ $albumFile = $albumDir . $albumName . '.txt';
63
+
64
+ // 显示相册内容管理界面
65
+ echo "<h2>管理相册: $albumName</h2>";
66
+ echo "<a href='?'>返回相册列表</a><br>";
67
+
68
+ // 处理增加图片的操作
69
+ if (isset($_POST['add'])) {
70
+ $imageUrls = explode("\n", $_POST['imageUrls']); // 从文本区域获取多个URL
71
+ foreach ($imageUrls as $imageUrl) {
72
+ if (!empty($imageUrl)) {
73
+ file_put_contents($albumFile, trim($imageUrl) . "\n", FILE_APPEND);
74
+ }
75
+ }
76
+ }
77
+
78
+ // 处理删除图片的操作
79
+ if (isset($_POST['delete'])) {
80
+ $imageUrl = $_POST['imageUrl'];
81
+ $images = file($albumFile, FILE_IGNORE_NEW_LINES);
82
+ $images = array_filter($images, function ($line) use ($imageUrl) {
83
+ return trim($line) !== trim($imageUrl);
84
+ });
85
+ file_put_contents($albumFile, implode("\n", $images) . "\n");
86
+ }
87
+
88
+ // 显示图片和删除按钮
89
+ $images = file($albumFile, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
90
+ echo "<div style='display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px;'>";
91
+ foreach ($images as $imageUrl) {
92
+ echo "<div style='text-align: center;'>";
93
+ echo "<img src='$imageUrl' alt='Thumbnail' width='100' height='100'>";
94
+ echo "<form method='post' style='display: inline;' onsubmit='return confirmDelete();'>";
95
+ echo "<input type='hidden' name='imageUrl' value='$imageUrl'>";
96
+ echo "<input type='submit' name='delete' value='删除'>";
97
+ echo "</form>";
98
+ echo "</div>";
99
+ }
100
+ echo "</div>";
101
+
102
+ // 显示添加图片表单
103
+ echo "<form method='post' style='margin-top: 20px;'>";
104
+ echo "<textarea name='imageUrls' placeholder='输入图片URL,每行一个' style='width: 500px; height: 100px;'></textarea>";
105
+ echo "<input type='submit' name='add' value='批量添加图片'>";
106
+ echo "</form>";
107
+
108
+ } else {
109
+ // 显示相册列表
110
+ echo "<h2>相册列表</h2>";
111
+ echo "<div style='display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px;'>";
112
+ foreach ($albums as $album) {
113
+ $albumName = basename($album, '.txt');
114
+ echo "<a href='?album=$albumName' style='text-align: center;'>$albumName</a>";
115
+ }
116
+ echo "</div>";
117
+
118
+ // 显示创建新相册表单
119
+ echo "<form method='post' style='margin-top: 20px;'>";
120
+ echo "<input type='text' name='newAlbumName' placeholder='输入新相册名称'>";
121
+ echo "<input type='submit' name='create' value='创建新相册'>";
122
+ echo "</form>";
123
+ }
124
+
125
+ } elseif (isset($_POST['password']) && $_POST['password'] === $correctPassword) {
126
+ // 口令正确,保存口令到会话
127
+ $_SESSION['password'] = $_POST['password'];
128
+ // 重定向到相同页面,避免表单重复提交
129
+ header('Location: ' . $_SERVER['PHP_SELF']);
130
+ exit;
131
+ } else {
132
+ // 显示口令输入表单
133
+ echo "<form method='post'>";
134
+ echo "<input type='password' name='password' placeholder='输入口令'>";
135
+ echo "<input type='submit' value='提交'>";
136
+ echo "</form>";
137
+ }
138
+ ?>
139
+
140
+ <!-- HTML 和 JavaScript 部分 -->
141
+ <html>
142
+ <head>
143
+ <title>图片上传</title>
144
+ <!-- 引入image-compression库 -->
145
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/image-compression/1.0.10/image-compression.min.js"></script>
146
+ <!-- 其他头部信息 -->
147
+ </head>
148
+ <body>
149
+ <!-- 相册管理界面的HTML代码 -->
150
+
151
+ <!-- 加载外部JavaScript文件 -->
152
+ <script src="imageUpload.js"></script>
153
+ </body>
154
+ </html>