Javascript 在React中使用axios以pdf格式下载单个文件,以zip格式下载多个文件
我目前正在使用此方法下载来自API的文件。 但在这里,无论文件是单个文件还是多个文件,它们都是以Zip格式下载的 是否有任何方法可以更改它,以便如果单个文件存在,它将按原样下载,对于多个文件,它们将按Zip文件下载Javascript 在React中使用axios以pdf格式下载单个文件,以zip格式下载多个文件,javascript,node.js,reactjs,axios,Javascript,Node.js,Reactjs,Axios,我目前正在使用此方法下载来自API的文件。 但在这里,无论文件是单个文件还是多个文件,它们都是以Zip格式下载的 是否有任何方法可以更改它,以便如果单个文件存在,它将按原样下载,对于多个文件,它们将按Zip文件下载 我是一个初学者,无法理解它。在使用单个文件和多个文件时,请确认响应(res.data)好吗?如果可能的话,请更新问题Blob{size:19753,键入:“text/html”}size:19753键入:“text/html”无论是多个还是单个,在将res.data传递给新Blob(
我是一个初学者,无法理解它。在使用单个文件和多个文件时,请确认响应(res.data)好吗?如果可能的话,请更新问题Blob{size:19753,键入:“text/html”}size:19753键入:“text/html”无论是多个还是单个,在将res.data传递给新Blob(res.data)之前,我可以知道响应格式吗。如果有单个文件或多个文件。如果它们之间存在差异,那么我们可以有条件地进行处理
try {
const res = await axios.get(
`${apilink}/download/`,
{
responseType: "blob",
params: body,
}
);
const url = window.URL.createObjectURL(new Blob([res.data]));
const link = document.createElement("a");
link.href = url;
link.setAttribute("download", "file.zip");
document.body.appendChild(link);
link.click();
} catch (e) {
toaster.notify("Cannot Download.Please try again");
}