下载公共文件夹中的示例文件(react)

IT技术 reactjs download xlsx
2021-05-19 00:58:50

我想在我的公共文件夹(react项目)中放置一个示例 xlsx 文件,其他人可以下载此文件。

<Button><link rel="chargeSample" href="%PUBLIC_URL%/chargeSample.xlsx"></link></Button>

我怎样才能做到这一点?

3个回答

该标签定义了文档和外部资源之间的链接。要在您的网站上下载功能,您应该更改链接标签

import chargeSample from './public/chargeSample.xlsx';

<Button><a href={chargeSample} download="your file name">Download</a></Button>

如果您使用的是 creat react app,则可以在构建时通过使用将公共路径传递到您的组件中

process.env.PUBLIC_URL

首先,我们必须考虑你存储文件的位置,考虑 react 在构建时会做什么。在开发中,您不能 100% 相信您使用的路径在构建应用程序后会相同。 这里在创建应用程序的reactDOC有关于何时使用公共文件夹,以及如何使用它的一些信息。

要下载存储在公共文件夹中的文件,您必须使用 PUBLIC_URL 引用它。有两种方法可以做到这一点:

从公用文件夹中引用文件
您将必须使用 de%PUBLIC_URL%如您所提到的。例如,如果您想在主 HTML 文件中使用收藏夹图标,您必须在公共文件夹中添加该图标,然后在index.html您将使用%PUBLIC_URL%前缀引用此文件

// public/index.html
// ...other stuff
    <link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico" />
// ...

在构建时,React 会用该文件夹的路径替换这个哈希值

引用 src 文件夹中的文件
要从src 文件夹中引用文件,您必须访问公共文件夹 URL。React 将此路径保存在环境变量中。为了能够使用该文件,您必须使用process.env.PUBLIC_URL路径。
要从公共文件夹下载文件,您可以像这样访问它:

<a
  href={process.env.PUBLIC_URL + "/my-file.txt"}
  download={"file-name-to-use.txt"}
>
    Download file
</a>

单击锚标记时,它会尝试下载/public以该名称存储的文件my-file.txt,并将使用download属性中指定的名称作为该文件的占位符名称