当前位置: 首页 > 知识库问答 >
问题:

如何在reactjs中下载图像?

卞博简
2023-03-14

我想尝试下载图像点击按钮,但是当我点击按钮,所以不是下载图像,而是直接打开图像,但我想做下载图像,所以如何在reactjs下载图像?

<a
  href="https://timesofindia.indiatimes.com/thumb/msid-70238371,imgsize-89579,width-400,resizemode-4/70238371.jpg"
  download
 >
   <i className="fa fa-download" />
 </a>

共有3个答案

孙承弼
2023-03-14

安装文件保护程序包:

npm i file-saver

您的反应组件:

  import { saveAs } from 'file-saver'

  const Index = () => {
    const downloadImage = () => {
      saveAs('image_url', 'image.jpg') // Put your image url here.
    }

    return <Button onClick={downloadImage}>Download!</Button>
  }
曹季同
2023-03-14

你可以这样做:

function App() {
  const download = () => {
    var element = document.createElement("a");
    var file = new Blob(
      [
        "https://timesofindia.indiatimes.com/thumb/msid-70238371,imgsize-89579,width-400,resizemode-4/70238371.jpg"
      ],
      { type: "image/*" }
    );
    element.href = URL.createObjectURL(file);
    element.download = "image.jpg";
    element.click();
  };
  return (
    <div className="App">
      <a
        href="https://timesofindia.indiatimes.com/thumb/msid-70238371,imgsize-89579,width-400,resizemode-4/70238371.jpg"
        download
        onClick={() => download()}
      >
        <i className="fa fa-download" />
        download
      </a>
    </div>
  );
}

以下是工作url:https://codesandbox.io/s/clever-noether-3nu2p?fontsize=14

注意:可以做更多的事情。我只是为了演示而创建的

邢曦
2023-03-14

遇到了这个问题,所以试图找出如何下载png图像,发现另一个答案对我来说并不太合适,因为下载的文件无法打开。需要使用arraybuffer转换图像。

这是有效的代码。

function App() {
  const download = e => {
    console.log(e.target.href);
    fetch(e.target.href, {
      method: "GET",
      headers: {}
    })
      .then(response => {
        response.arrayBuffer().then(function(buffer) {
          const url = window.URL.createObjectURL(new Blob([buffer]));
          const link = document.createElement("a");
          link.href = url;
          link.setAttribute("download", "image.png"); //or any other extension
          document.body.appendChild(link);
          link.click();
        });
      })
      .catch(err => {
        console.log(err);
      });
  };
  return (
    <div className="App">
      <a
        href="https://upload.wikimedia.org/wikipedia/en/6/6b/Hello_Web_Series_%28Wordmark%29_Logo.png"
        download
        onClick={e => download(e)}
      >
        <i className="fa fa-download" />
        download
      </a>
    </div>
  );
}

Codesandbox:https://codesandbox.io/s/dreamy-gould-h1l72

P. S.下载方法取自此回复,但使用普通获取而不是axios。https://stackoverflow.com/a/50220546/10006323

 类似资料:
  • 我目前正在做一个个人投资组合,我试图制作一个按钮,如果你点击它,应该下载一份简历。 代码 让用户下载该文件。 我在REACTJS中工作,创建react应用程序

  • 问题内容: 我正在尝试在正在制作的购物车中显示图像,但没有显示出来。我必须导入每个图像吗?我知道我的路径很好,因为它以前可以工作。我认为我的product.js文件中可能有问题,但我无法弄清楚。 这是我的Product.js 数据来自此product.js 我正在提取所有数据,但图像没有显示 问题答案: 假设您使用的是webpack,则需要导入图像以使其像 现在您的图像数据是动态的,直接指定导入路

  • 使用Glide将URL下载到非常容易: 我想知道我是否也可以下载到中?我想下载到原始位图中,然后我可以使用其他工具进行操作。我已经浏览了代码,但不知道如何操作。

  • 我有一个来自服务器的bas64编码图像,我想通过JavaScript强制下载。有可能吗?

  • 问题内容: 您好,我正在尝试从网页下载图像。我正在尝试从“ http://www.yahoo”主页下载该图像。请告诉我如何传递“ http://www.yahoo”作为输入。以及在打开此网页时如何从该页面获取图像。请给我Java代码以从网页获取图像。 问题答案: (throws IOException) 请参阅包装以获取更多信息。那是使用AWT图片。否则,您可以执行以下操作: 然后您可能想要保存图

  • 我试图下载和保存图像从网络使用python的模块。 以下是我使用的(工作)代码: 以下是使用