<?php
// 需要迁移的数据库
$hostname = '127.0.0.1';
$database = 'fastadmin';
$username = 'fastadmin';
$password = 'fastadmin';
$hostport = 3306;
$prefix = 'fa_';// 之前能访问的素材域名
$domain = 'https://fastadmin.xxxx.com';// 连接数据库
$conn = new mysqli($hostname, $username, $password, $database, $hostport);// 检查连接
if ($conn->connect_error) {die("连接失败: " . $conn->connect_error);
}// 查询图片地址
$sql = "SELECT url FROM {$prefix}attachment";
$result = $conn->query($sql);if ($result->num_rows > 0) {// 输出数据while ($row = $result->fetch_assoc()) {$url = $row['url'];downloadImage($domain, $url);}
} else {echo "数据库中没有记录";
}$conn->close();/*** 下载图片并保存到对应目录** @param string $domain 域名* @param string $url 图片路径*/
function downloadImage($domain, $url)
{// 拼接完整的图片 URL$fullUrl = $domain . $url;// 提取日期目录和文件名$pathParts = explode('/', $url);$dateDir = $pathParts[2]; // 日期目录部分$fileName = end($pathParts); // 文件名部分// 创建保存目录$saveDir = __DIR__ . "/uploads/{$dateDir}";if (!file_exists($saveDir)) {mkdir($saveDir, 0755, true);}// 保存文件路径$savePath = "{$saveDir}/{$fileName}";// 使用 cURL 下载图片$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $fullUrl);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);$data = curl_exec($ch);curl_close($ch);// 保存图片数据到文件if ($data) {file_put_contents($savePath, $data);echo "下载成功: {$savePath}\n";} else {echo "下载失败: {$fullUrl}\n";}
}
- 数据库连接:连接到 MySQL 数据库并查询所有图片地址。
- 提取日期目录和文件名:从 URL 中提取日期部分和文件名部分。
- 创建目录:如果目录不存在,则创建目录。
- 下载图片:使用 cURL 下载图片并保存到对应的目录中。