Merge pull request #14 from SDSRV-IDP/feature/download-filename

Add filename to download
This commit is contained in:
Đỗ Xuân Tân 2024-02-02 14:17:42 +07:00 committed by GitHub Enterprise
commit f38f1bf6ec
4 changed files with 19 additions and 8 deletions

@ -1 +1 @@
Subproject commit 6907ea0183b141e3b4f3c21758c9123f1e9b2a27
Subproject commit b6d4fab46f7f8689dd6b050cfbff2faa6a6f3fec

View File

@ -19,10 +19,10 @@ const ReportTable: React.FC = () => {
}));
const handleDownloadReport = async (report_id: string) => {
const reportFile = await downloadReport(report_id);
const {file, filename} = await downloadReport(report_id);
const anchorElement = document.createElement('a');
anchorElement.href = URL.createObjectURL(reportFile);
anchorElement.download = `${report_id}.xlsx`; // Set the desired new filename
anchorElement.href = URL.createObjectURL(file);
anchorElement.download = filename;
document.body.appendChild(anchorElement);
anchorElement.click();

View File

@ -258,10 +258,10 @@ const ReportDetail = () => {
});
const report_data = data as ReportDetailList;
const handleDownloadReport = async () => {
const reportFile = await downloadReport(id);
const {file, filename} = await downloadReport(id);
const anchorElement = document.createElement('a');
anchorElement.href = URL.createObjectURL(reportFile);
anchorElement.download = `${id}.xlsx`; // Set the desired new filename
anchorElement.href = URL.createObjectURL(file);
anchorElement.download = filename;
document.body.appendChild(anchorElement);
anchorElement.click();

View File

@ -93,12 +93,23 @@ export async function downloadReport(report_id: string) {
const response = await API.get(`/ctel/get_report_file/${report_id}/`, {
responseType: 'blob', // Important
});
let filename = "report.xlsx";
try {
let basename = response.headers['content-disposition'].split('filename=')[1].split('.')[0];
let extension = response.headers['content-disposition'].split('.')[1].split(';')[0];
filename = `${basename}.${extension}`
} catch(err) {
console.log(err);
}
const file = new Blob([response.data], {
type: 'application/vnd.ms-excel',
});
// const fileURL = URL.createObjectURL(file);
// window.open(fileURL);
return file;
return {
file: file,
filename: filename,
}
} catch (error) {
notification.error({
message: `${error?.message}`,