【问题标题】:button to download a file in reactJS在 reactJS 中下载文件的按钮
【发布时间】:2019-11-26 18:08:31
【问题描述】:

我目前正在处理个人作品集,我正在尝试制作一个按钮,如果您单击它应该下载简历。

代码

<form method="get" action="fileName">
        <button class="myButton" type="submit">Download!</button>
</form>

让用户下载文件。

我正在使用 REACTJS,create-react-app

【问题讨论】:

标签: javascript reactjs


【解决方案1】:

你可以这样做

<a href="./yourfile.pdf" download> Download CV</a>

【讨论】:

  • 实际上它会下载但它说失败 - 没有文件。
  • 您必须提供正确的路径:例如,如果您的文件在公共文件夹“/filePath.pdf”中
  • 它在我的组件文件夹中,我的 main.js 文件也在其中。所以我所拥有的是“./document.pdf”
  • 尝试将文件移动到公用文件夹,路径将是“/document.pdf”
【解决方案2】:

您可以使用FileSaver.js 来实现这个目标:

安装 npm 包:npm install file-saver --save

const saveFile = () => {
fileSaver.saveAs(
  process.env.REACT_APP_CLIENT_URL + "/resources/cv.pdf",
  "MyCV.pdf"
);

};

<button className="cv" onClick={saveFile}>
    Download File
</button>

【讨论】:

    【解决方案3】:

    我有同样的问题,这是我现在使用的解决方案:

    步骤

    三个步骤:

    1. 在项目中使用文件保护程序npmjs/package/file-savernpm install file-saver 什么的)
    2. 将文件放入您的项目中您说它在 components 文件夹中。好吧,如果你有 web-pack,它可能会尝试缩小它。(有人请指出 webpack 会对 components 文件夹中的资产文件做什么),所以我认为这不是你想要的.因此,我建议将资产放入public 文件夹中,使用resourceasset 名称。 Webpack 不会触及 public 文件夹和 index.html,并且您的资源会按原样复制到生产构建中,您可以在其中引用它们,如下一步所示。
    3. 参考你项目中的文件 示例代码:
      import FileSaver from 'file-saver';
      FileSaver.saveAs(
          process.env.PUBLIC_URL + "/resource/file.anyType",
          "fileNameYouWishCustomerToDownLoadAs.anyType");
      

    来源

    附录

    没用,这里还是不错的答案:

    【讨论】:

      猜你喜欢
      • 2019-04-29
      • 1970-01-01
      • 2021-06-15
      • 1970-01-01
      • 2021-08-25
      • 2012-04-25
      • 2020-08-21
      • 1970-01-01
      • 2018-02-07
      相关资源
      最近更新 更多