feat: 数据库备份下载支持
This commit is contained in:
parent
34d9c80c5f
commit
b00675c00e
@ -50,6 +50,8 @@ public class SysDbBackupService : IDynamicApiController, ITransient
|
||||
});
|
||||
}
|
||||
|
||||
dbBackupList = dbBackupList.OrderByDescending(u => u.CreateTime).ToList();
|
||||
|
||||
return dbBackupList;
|
||||
}
|
||||
catch
|
||||
@ -156,4 +158,19 @@ public class SysDbBackupService : IDynamicApiController, ITransient
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 下载备份 🔖
|
||||
/// </summary>
|
||||
/// <param name="fileName"></param>
|
||||
[ApiDescriptionSettings(Name = "Download"), HttpGet]
|
||||
[DisplayName("下载备份")]
|
||||
[AllowAnonymous]
|
||||
[NonUnify]
|
||||
public IActionResult Download(string fileName)
|
||||
{
|
||||
var path = Path.Combine(_backupDir, fileName);
|
||||
var fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
|
||||
return new FileStreamResult(fs, "application/octet-stream") { FileDownloadName = fileName };
|
||||
}
|
||||
}
|
||||
@ -28,6 +28,7 @@
|
||||
</template>
|
||||
<template #row_buttons="{ row }">
|
||||
<el-button icon="ele-Delete" text type="danger" v-auth="'dbBackup/delete'" @click="handleDelete(row)"> 删除 </el-button>
|
||||
<el-button icon="ele-Download" text type="primary" @click="handleDownload(row)"> 下载 </el-button>
|
||||
</template>
|
||||
</vxe-grid>
|
||||
</el-card>
|
||||
@ -127,6 +128,23 @@ const handleDelete = async (row: any) => {
|
||||
state.loading = false;
|
||||
}
|
||||
};
|
||||
|
||||
// 下载备份
|
||||
const handleDownload = (row: any) => {
|
||||
const baseUrl = import.meta.env.VITE_API_URL;
|
||||
let url = `${baseUrl}/api/sysDbBackup/download/${row.fileName}`;
|
||||
|
||||
const tempLink = document.createElement('a');
|
||||
tempLink.style.display = 'none';
|
||||
tempLink.href = url;
|
||||
tempLink.setAttribute('download', row.fileName);
|
||||
if (typeof tempLink.download === 'undefined') {
|
||||
tempLink.setAttribute('target', '_blank');
|
||||
}
|
||||
document.body.appendChild(tempLink);
|
||||
tempLink.click();
|
||||
document.body.removeChild(tempLink);
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user