首页 > 解决方案 > 如何在 React 中下载编码资产(任何类型的文件)?

问题描述

在我的 React 应用程序中,我有一个 API 可以通过发送文件 URL 来获取文件。收到文件后,我需要将其作为原始文件下载。这应该适用于任何类型的文件。当我调用 API 时,我从后端获取文件的编码文本。我正在使用react-file-saver模块来下载文件。问题是,模块下载的是文本文件而不是真实文件。

这就是 GET API 响应的样子

IHDRÄõWìã¢sRGB®Îé–eXIfMM*>F(‡iNÄ õASCIIScreenshotÞK|    pHYs%%IR$ðÖiTXtXML:com.adobe.xmp<x:xmpmeta xmlns:x="........

这是下载的功能

import { saveAs } from 'file-saver';

downloadFile = (url) => {
        API.get(`/main/download?fileUrl=${url}`, { headers: { 'Accept': 'application/*' } })
            .then(res => {
                var file = new File([res.data], { type: "text/plain;charset=utf-8" });
                saveAs(file);
            })
            .catch((err) => {
                console.error("AXIOS ERROR: ", err);
            })
    }

我该如何解决这个问题?

标签: javascriptreactjs

解决方案


推荐阅读