v2.3更新
This commit is contained in:
@@ -88,9 +88,21 @@ include __DIR__ . '/../includes/header.php';
|
||||
var upgradeSteps = [];
|
||||
var currentStepIndex = 0;
|
||||
|
||||
function escapeHtml(str) {
|
||||
if (typeof str !== 'string') return '';
|
||||
var div = document.createElement('div');
|
||||
div.appendChild(document.createTextNode(str));
|
||||
return div.innerHTML;
|
||||
}
|
||||
|
||||
fetch('/api/check_upgrade.php')
|
||||
.then(function(r) { return r.json(); })
|
||||
.then(function(data) {
|
||||
// 检查是否返回了错误
|
||||
if (data.error) {
|
||||
console.warn('升级检查失败:', data.error);
|
||||
return;
|
||||
}
|
||||
if (data.needs_upgrade) {
|
||||
document.getElementById('currentDbVersion').textContent = data.current;
|
||||
document.getElementById('targetDbVersion').textContent = data.target;
|
||||
@@ -101,14 +113,16 @@ include __DIR__ . '/../includes/header.php';
|
||||
for (var i = 0; i < upgradeSteps.length; i++) {
|
||||
listHtml += '<div style="display:flex;align-items:center;padding:8px 12px;margin:4px 0;border-radius:6px;font-size:13px;background:var(--color-hover);border-left:3px solid var(--color-border);" id="ustep-' + i + '">' +
|
||||
'<span style="margin-right:8px;" id="ustep-icon-' + i + '">○</span>' +
|
||||
'<span>升级至 v' + upgradeSteps[i].version + '</span>' +
|
||||
'<span>升级至 v' + escapeHtml(upgradeSteps[i].version) + '</span>' +
|
||||
'</div>';
|
||||
}
|
||||
document.getElementById('upgradeStepsList').innerHTML = listHtml;
|
||||
document.getElementById('upgradeModal').style.display = 'flex';
|
||||
}
|
||||
})
|
||||
.catch(function() {});
|
||||
.catch(function(err) {
|
||||
console.warn('升级检查请求失败:', err);
|
||||
});
|
||||
|
||||
window.startUpgrade = function() {
|
||||
var btn = document.getElementById('startUpgradeBtn');
|
||||
@@ -196,7 +210,7 @@ include __DIR__ . '/../includes/header.php';
|
||||
laterBtn.textContent = '关闭';
|
||||
|
||||
document.getElementById('upgradeResult').style.display = 'block';
|
||||
document.getElementById('upgradeResult').innerHTML = '<div style="background:var(--color-danger-light);border:1px solid #ffccc7;border-radius:6px;padding:12px;color:var(--color-danger-dark);font-size:13px;"><strong>升级失败:</strong>' + msg + '</div>';
|
||||
document.getElementById('upgradeResult').innerHTML = '<div style="background:var(--color-danger-light);border:1px solid #ffccc7;border-radius:6px;padding:12px;color:var(--color-danger-dark);font-size:13px;"><strong>升级失败:</strong>' + escapeHtml(msg) + '</div>';
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
@@ -46,16 +46,24 @@ $apiResponse = curl_exec($ch);
|
||||
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
curl_close($ch);
|
||||
|
||||
if ($httpCode !== 200 || empty($apiResponse)) {
|
||||
if (empty($apiResponse)) {
|
||||
echo json_encode(['error' => '无法连接升级服务']);
|
||||
exit();
|
||||
}
|
||||
|
||||
$result = json_decode($apiResponse, true);
|
||||
if (!$result || !isset($result['success']) || !$result['success']) {
|
||||
echo json_encode(['error' => $result['message'] ?? '升级检查失败']);
|
||||
if (!$result) {
|
||||
echo json_encode(['error' => '升级服务返回数据格式错误']);
|
||||
exit();
|
||||
}
|
||||
|
||||
// 后端返回非200时,尝试解析实际错误信息
|
||||
if ($httpCode !== 200 || !isset($result['success']) || !$result['success']) {
|
||||
$errorMsg = $result['message'] ?? ($result['error'] ?? '升级检查失败');
|
||||
echo json_encode(['error' => $errorMsg]);
|
||||
exit();
|
||||
}
|
||||
|
||||
// 转发后端返回的升级数据
|
||||
echo json_encode($result['data']);
|
||||
$data = $result['data'] ?? [];
|
||||
echo json_encode($data);
|
||||
|
||||
@@ -64,7 +64,7 @@ $apiResponse = curl_exec($ch);
|
||||
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
curl_close($ch);
|
||||
|
||||
if ($httpCode !== 200 || empty($apiResponse)) {
|
||||
if (empty($apiResponse)) {
|
||||
http_response_code(500);
|
||||
echo json_encode([
|
||||
'success' => false,
|
||||
@@ -75,15 +75,28 @@ if ($httpCode !== 200 || empty($apiResponse)) {
|
||||
}
|
||||
|
||||
$result = json_decode($apiResponse, true);
|
||||
if (!$result || !isset($result['success']) || !$result['success']) {
|
||||
if (!$result) {
|
||||
http_response_code(500);
|
||||
echo json_encode([
|
||||
'success' => false,
|
||||
'version' => $stepVersion,
|
||||
'error' => $result['message'] ?? '升级失败'
|
||||
'error' => '升级服务返回数据格式错误'
|
||||
]);
|
||||
exit();
|
||||
}
|
||||
|
||||
// 后端返回非200或 success=false 时,提取实际错误信息
|
||||
if ($httpCode !== 200 || !isset($result['success']) || !$result['success']) {
|
||||
$errorMsg = $result['message'] ?? ($result['error'] ?? '升级失败');
|
||||
http_response_code(500);
|
||||
echo json_encode([
|
||||
'success' => false,
|
||||
'version' => $stepVersion,
|
||||
'error' => $errorMsg
|
||||
]);
|
||||
exit();
|
||||
}
|
||||
|
||||
// 转发后端返回的数据
|
||||
echo json_encode($result['data']);
|
||||
$data = $result['data'] ?? [];
|
||||
echo json_encode($data);
|
||||
|
||||
Reference in New Issue
Block a user